23.03.2018, 08:01 | #1 |
Участник
|
Запросы в "Главной Книге" с параметром Корр Счет
Добрый день!
Прошу помочь в не понятной ситуацией с Отчетом "Главная Книга" Причем создается постоянно один и тот же запрос в базе SQL : SELECT TOP 1 T1.LEDGERDIMENSION,T1.RECID FROM GENERALJOURNALACCOUNTENTRY T1 WHERE ((T1.PARTITION=@P1) AND ((T1.GENERALJOURNALENTRY=@P2) AND (T1.ISCREDIT<>@P3))) AND EXISTS (SELECT TOP 1 'x' FROM GENERALJOURNALACCOUNTENTRY_W T2 WHERE ((T2.PARTITION=@P4) AND ((T2.GENERALJOURNALACCOUNTENTRY=T1.RECID) AND (T2.BONDBATCHTRANS_RU<>@P5))) AND EXISTS (SELECT TOP 1 'x' FROM GENERALJOURNALACCOUNTENTRY_W T3 WHERE ((T3.PARTITION=@P6) AND ((T3.GENERALJOURNALACCOUNTENTRY=@P7) AND (T3.BONDBATCHTRANS_RU=T2.BONDBATCHTRANS_RU))))) Если Отчет раньше работал довольно быстро-то(5-10 минут) через пару тройку дней он перестает формироваться или формируется часами. Рестарт АОС не помогает. Единственное что спасает в данной ситуации перезагрузка сервера БД(критично это делать каждый день) |
|
23.03.2018, 08:59 | #2 |
Злыдни
|
Поставьте в ночном пакете на SQL запуск хранимой процедуры sp_updatestats для рабочей БД.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
23.03.2018, 10:16 | #3 |
Участник
|
KiselevSA
Спасибо,но у нас каждую ночь происходит ребилд и обновления статистик. |
|
23.03.2018, 10:46 | #4 |
Участник
|
вместо перезапуска сервера можно наверное запустить
DBCC FREEPROCCACHE GO а так если что-то работает иногда, а иногда не работает(при одинаковых данных) и при этом сервер не нагружен, то скорее всего это SQL Server parameter sniffing. но универсального решения в данном варианте не существует |
|
23.03.2018, 11:07 | #5 |
Moderator
|
Еще можно попробовать в исходном запросе поставить query.literals(1) (если это query) или просто поставить хинт forceliterals если это обычный SQL запрос...
|
|
23.03.2018, 12:24 | #6 |
Участник
|
Я бы, в первую очередь, избавился от exists join в запросах - очень сильно помогло, правда еще в DAX4 и в другом отчете, но так же связанном с корреспонденцией:
DAX4: генератор финснсовой отчетности, выборка оборотов по корреспонденции счетов |
|
23.03.2018, 14:21 | #7 |
Участник
|
Цитата:
Сообщение от trud
вместо перезапуска сервера можно наверное запустить
DBCC FREEPROCCACHE GO а так если что-то работает иногда, а иногда не работает(при одинаковых данных) и при этом сервер не нагружен, то скорее всего это SQL Server parameter sniffing. но универсального решения в данном варианте не существует Сброс плана запросов делаем-не помогает А вот про второе почитаю.Спасибо. |
|
23.03.2018, 15:46 | #8 |
Участник
|
Цитата:
Сообщение от Raven Melancholic
Я бы, в первую очередь, избавился от exists join в запросах - очень сильно помогло, правда еще в DAX4 и в другом отчете, но так же связанном с корреспонденцией:
DAX4: генератор финснсовой отчетности, выборка оборотов по корреспонденции счетов Сам запрос сформировался за 6 минут Запустили тяжелый-ждем. |
|
27.03.2018, 12:13 | #9 |
Участник
|
Вообщем не помогло.
Решили обратиться за помощью в компанию по поддержки Ax12 |
|
27.03.2018, 14:11 | #10 |
Участник
|
Была похожая ситуация. Приглашали инженера Microsoft. Сошлись на перестроении индексов с фрагментацией больше 30% каждую ночь. Каждое воскресенье перестраиваются индексы с фрагментацией больше 9%. В конце месяца, когда проводок на 2-3 порядка больше чем обычно, иногда, перестраиваем на живую.Сейчас более-менее производительность равномерная. Висла корреспонденция, как указано в Вашем сообщении, и представление DimensionAttributeLevelValueView, которое используется для фильтра по аналитикам.
|
|
29.03.2018, 08:38 | #11 |
Участник
|
У нас данные за 2017 год почти не изменяются)
Дерагментацию делаем следующим образом: Если < 30% - реорганизация, если >= 30 - перестроение. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|