|
21.11.2024, 08:25 | #1 |
Участник
|
Цитата:
Окончание индекса ведь строится по реальному физическому имени таблицы в базе данных TempDB. Если таблицы нет, то какое имя добавлять?
Сейчас немного смущают следующие моменты - в примере в запросе один ID, а на скринах ID таблички другой - запрос с одной инсталляции, скрины AOT с другой ? - в коде мы выбираем только одно поле, в запросе присутствуют все поля - хотя индексы не кластерные, кеширование отключено, интересно почему выбираются все поля, мб потому что tempDB. - не помогает ребут, те это меняется что-то в каких-то постоянных характеристиках системы, а не кеш\память и т.д. - так а на всех ли инсталляциях проявляется проблема, на разных АОСах, в пакетном режиме ? - что в EV на АОСе ? Там эта ошибка есть, другие ? - если снять трассировки SQL запросов (например через TraceParser) в этом функционале после исправления проблемы и просто в других местах системы - все ли запросы уходят с with ? (опять таки если несколько АОСов то попробовать снять трассировки на разных)
__________________
Sergey Nefedov |
|
21.11.2024, 09:50 | #2 |
Участник
|
Цитата:
Цитата:
Сразу не посмотрел, а сейчас почему-то не вижу на этом аосе события старше 1 дня. Не пойму почему. |
|
21.11.2024, 12:10 | #3 |
Участник
|
Цитата:
Сообщение от Gibrid
Вылезает проблема не так часто, раз в пол года может... Статистики еще не набралось. Единственное, в последний раз, когда появилась проблема ночью, чуть позже перезагрузился кластер со всеми аосами и скулем... После этого пакетник с этим запросом 1 раз отработал, а потом опять начал падать в ошибку.
Сразу не посмотрел, а сейчас почему-то не вижу на этом аосе события старше 1 дня. Не пойму почему. - в логах (batchlog) работы пакетника можно глянуть на каких АОСах были падения - разные там или не разные, но так скорее для статистики - попробуйте поснимать трейсы своего процесса и посмотреть запрос на котором падает, трейсы можно снимать через счетчики windows - https://www.microsoft.com/en-us/down....aspx?id=27549, т.е. можете прямо пакетные задачи посмотреть - настраивать надо будет на всех АОСах где может выполняться пакетное задание. посмотрите на разных аосах\окружениях одни и те же запросы, одинаковые ли хинты там. - еще про with - часть запросов без with - а там есть хинт top 1, что то подозрение возникает о том, что with появляется, если в запросе есть firstOnly - попробуйте поменять ваш запрос на count() и посмотреть будет ли with в запросе (понятно что это как закат солнца вручную, но как костыль возможно подойдет) - насколько я понимаю билды у вас не последние, как MS в этом случае рекомендует - обновите ядро - а что вы делаете с постоянными табличками - там тоже название индекса меняете или делаете синхронизацию\пересоздание индекса? помогает ли просто пересоздание индекса ?
__________________
Sergey Nefedov |
|
21.11.2024, 13:30 | #4 |
Участник
|
|
|
21.11.2024, 15:53 | #5 |
Участник
|
а у вас не осталось бекапа базы модели с таким случаем ?
Есть ощущением что повреждается определение таблицы с одновременным затиранием кластерного и праймери индекса в шапке таблицы. Я такое встречал, но давно и редко бывало. |
|
22.11.2024, 13:24 | #6 |
Участник
|
Цитата:
А какие могут быть причины этого? И как проверить, что это действительно оно в следующий раз? |
|
21.11.2024, 13:32 | #7 |
Участник
|
Цитата:
Сообщение от SRF
- это к админам, скорее всего могли настроить так хранение логов.
- в логах (batchlog) работы пакетника можно глянуть на каких АОСах были падения - разные там или не разные, но так скорее для статистики - попробуйте поснимать трейсы своего процесса и посмотреть запрос на котором падает, трейсы можно снимать через счетчики windows - https://www.microsoft.com/en-us/down....aspx?id=27549, т.е. можете прямо пакетные задачи посмотреть - настраивать надо будет на всех АОСах где может выполняться пакетное задание. посмотрите на разных аосах\окружениях одни и те же запросы, одинаковые ли хинты там. - еще про with - часть запросов без with - а там есть хинт top 1, что то подозрение возникает о том, что with появляется, если в запросе есть firstOnly - попробуйте поменять ваш запрос на count() и посмотреть будет ли with в запросе (понятно что это как закат солнца вручную, но как костыль возможно подойдет) - насколько я понимаю билды у вас не последние, как MS в этом случае рекомендует - обновите ядро |
|
21.01.2025, 12:42 | #8 |
Участник
|
Столкнулись с той же проблемой.
На временной TempDb табличке. Проблема появилась после того как в конфигурации аоса включили index hint. Вероятно у вас также включены index hint, поэтому одной из рекомендаций было бы отключить их. (это 1-й бит в узле hint в конфигурации аоса в реестре. Дефолтное значение там "2") Еще я заметил что помогает, если явно указать в запросе index имя индекса (но не index hint имя индекса) видимо это добавляет сортировку но подавляет кривой index hint. Но проблему решает. Вы как-нибудь решили для себя вопрос ? Последний раз редактировалось Logger; 21.01.2025 в 13:28. |
|
|
За это сообщение автора поблагодарили: Товарищ ♂uatr (4). |
21.11.2024, 10:08 | #9 |
Участник
|
Цитата:
|
|
21.11.2024, 10:55 | #10 |
Участник
|
Цитата:
К примеру: X++: SELECT TOP 1 T1.BATCHJOBCANCELED, T1.BATCHJOBENDED, T1.BATCHJOBERROR, T1.BATCHJOBID, T1.USERID, 101090 FROM BATCHJOBALERTS T1 WITH ( INDEX(I_2004BATCHJOBID)) WHERE ((BATCHJOBID=5639649525) |
|
Теги |
index hint, linkphysicaltableinstance |
|
|