powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Тормозит функция ВыбратьПоЗначению 7.7
4 сообщений из 4, страница 1 из 1
Тормозит функция ВыбратьПоЗначению 7.7
    #37969241
Frog_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрых суток.
Стоит 7.7 релиз 27 самописная, стоят гибкие блокировки Софтпоинта+Система мониторинга производительности.
Недели 3 назад началась интересная проблема, ночные операции (выполняются в 6 утра) перестали завершаться. Стали копать выяснили при помощи монитора, что долго выполняется Док.ВыбратьПоЗначению(ДатаНачала,,"ЛДоговор",ДЛ); (не только конкретно эта, но и еще несколько с отборами) количество чтений больше 20 миллионов записей, первая идея что слетел индекс, начали копать, но в ручном режиме не удалось воспроизвести. В любом случае еженедельно делается перестройка индексов и пересчет статистики, но это не помогло. Подумали, что проблема монопольного режима так как гибкие блокировки в этом режиме не запускаются и возможно при монопольном режиме используется другой индекс, переделали на запуск не монопольно, но проблема сохранилась. Пытаюсь получить запрос профайлером, запрос вроде получаю, но он для меня не совсем понятный и не возвращает данные.
declare @p1 int
set @p1=-1
declare @p2 int
set @p2=0
declare @p5 int
set @p5=4098
declare @p6 int
set @p6=8193
declare @p7 int
set @p7=0
exec sp_cursorprepexec @p1 output,@p2 output,N'@P1 int,@P2 char(23),@P3 char(23),@P4 char(23)',N'Select JOURN.* from _1SJOURN JOURN(NOLOCK INDEX=ACDATETIME), _1SCRDOC CRDOC(NOLOCK INDEX=PARENT) where JOURN.DATE_TIME_IDDOC=CRDOC.CHILD_DATE_TIME_IDDOC and CRDOC.MDID=@P1 and CRDOC.PARENTVAL=@P2 and CRDOC.CHILD_DATE_TIME_IDDOC>=@P3 and CRDOC.CHILD_DATE_TIME_IDDOC<=@P4 order by CRDOC.MDID, CRDOC.PARENTVAL, CRDOC.CHILD_DATE_TIME_IDDOC',@p5 output,@p6 output,@p7 output,9462,'B1 5JF 1IPBRL ','17530101 0 0 ','99991230FHML6O 0 '
select @p1, @p2, @p5, @p6, @p7
Запрос получаю через событие RPC: Completed возможно я что-то не так делаю или кто-то уже сталкивался с подобной проблемой.
возможно нужно удалить конкретные индексы и пересоздать их снова.
...
Рейтинг: 0 / 0
Тормозит функция ВыбратьПоЗначению 7.7
    #37969274
Frog_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кому интересно нашел интересную вещь. Сравниваю 2 вызова процедуры. Одну с гибкими блокировками, вторую при вызове монопольно. Софтпоинт проводит оптимизацию своего запроса отключая использование стандартных индексов и сделав order by только по CRDOC.CHILD_DATE_TIME_IDDOC, не знаю насколько работает быстрее, но в принципе можно попробовать написать пару запросов и сравнить. Возможно кому то пригодиться.

exec sp_cursorprepexec @p1 output,@p2 output,N'@P1 int,@P2 char(23),@P3 char(23),@P4 char(23)',N'Select JOURN.* from _1SJOURN JOURN(NOLOCK INDEX=ACDATETIME), _1SCRDOC CRDOC(NOLOCK INDEX=PARENT) where JOURN.DATE_TIME_IDDOC=CRDOC.CHILD_DATE_TIME_IDDOC and CRDOC.MDID=@P1 and CRDOC.PARENTVAL=@P2 and CRDOC.CHILD_DATE_TIME_IDDOC>=@P3 and CRDOC.CHILD_DATE_TIME_IDDOC<=@P4 order by CRDOC.MDID, CRDOC.PARENTVAL, CRDOC.CHILD_DATE_TIME_IDDOC' ,@p5 output,@p6 output,@p7 output,9462,'B1 5JF 1IPBRL ','20080303 0 0 ','99991230FHML6O 0 '

exec sp_cursorprepexec @p1 output,@p2 output,N'@P1 int,@P2 char(23),@P3 char(23),@P4 char(23)',N'Select JOURN.* from _1SJOURN JOURN(NOLOCK) , _1SCRDOC CRDOC(NOLOCK) where JOURN.DATE_TIME_IDDOC=CRDOC.CHILD_DATE_TIME_IDDOC and CRDOC.MDID=@P1 and CRDOC.PARENTVAL=@P2 and CRDOC.CHILD_DATE_TIME_IDDOC>=@P3 and CRDOC.CHILD_DATE_TIME_IDDOC<=@P4 order by CRDOC.CHILD_DATE_TIME_IDDOC /*Softpoint SQL2005 CRDOC optimization*/' ,@p5 output,@p6 output,@p7 output,9462,'B1 5JF 1IPBRL ','20080303 0 0 ','99991230FHML6O 0 '
...
Рейтинг: 0 / 0
Тормозит функция ВыбратьПоЗначению 7.7
    #37994321
Ivan Proshechkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Frog_i,

Тоже пытаюсь "укротить" это запрос. А как избавится от явного указания индексов в запросе. Я так понимаю, в том числе и из за них оптимизатор выбирает не самый лучший план запроса? Или как то по-другому "разрулили" проблему быстродействия?
...
Рейтинг: 0 / 0
Тормозит функция ВыбратьПоЗначению 7.7
    #37994411
Фотография МистерШоу
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan ProshechkinFrog_i,

Тоже пытаюсь "укротить" это запрос. А как избавится от явного указания индексов в запросе. Я так понимаю, в том числе и из за них оптимизатор выбирает не самый лучший план запроса? Или как то по-другому "разрулили" проблему быстродействия?

http://www.forum.mista.ru/topic.php?id=614846
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Тормозит функция ВыбратьПоЗначению 7.7
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]