|
![]() |
#1 |
Участник
|
Да, это выборка данных при помощи открытого курсора. Как понимаю, выбора идет порционно по мере возможности как выдачи данных SQL, так и получения потребителем.
В момент выполнения можно (зная номер сессии) даже увидеть что за запрос там в основе лежит, а не только считать его "неким": Код: SELECT curs.session_id, curs.properties, curs.creation_time, curs.is_open, sqlSttm.text FROM sys.dm_exec_cursors 123 curs CROSS APPLY sys.dm_exec_sql_text (curs.sql_handle) sqlSttm |
|
|
За это сообщение автора поблагодарили: mazzy (2), Vadik (1), AlexeyS (3), Logger (3). |
![]() |
#2 |
Участник
|
Цитата:
Сообщение от Raven Melancholic
![]() Да, это выборка данных при помощи открытого курсора. Как понимаю, выбора идет порционно по мере возможности как выдачи данных SQL, так и получения потребителем.
В момент выполнения можно (зная номер сессии) даже увидеть что за запрос там в основе лежит, а не только считать его "неким": Код: SELECT curs.session_id, curs.properties, curs.creation_time, curs.is_open, sqlSttm.text FROM sys.dm_exec_cursors 123 curs CROSS APPLY sys.dm_exec_sql_text (curs.sql_handle) sqlSttm
__________________
Любую техническую проблему можно решить, если есть достаточно времени и денег. |
|
![]() |
#3 |
Участник
|
Цитата:
https://github.com/TrudAX/TRUDScript...ait-statistics Чего конкретно ждет один определенный курсор посмотреть вряд ли получится, по запросу можно посмотреть план, если он простой, но наверное можно прикинуть что он может примерно ждать, однако надо представлять что за данные ему передаются |
|
|
За это сообщение автора поблагодарили: AlexeyS (3). |
![]() |
#4 |
Участник
|
В данном конкретном случае наверное таки можно.
запрос по финансовым проводкам. скорее всего кто-то в соседней сессии усердно делает разноску в ГК. (может быть даже в соседнем методе этой сессии). (может быть даже в период до 29\02\2020). делает настолько усердно, что SQL эскалировал блокировки до страниц. в ax2009 по умолчанию кластерный индекс в таблице LedgerTrans установлен по RecID... если была разноска "задним числом", то страницы с данными могут быть перемешаны как угодно. ========== мне кажется, что основная проблема была в модели, которая была у автора в голове. автор считал, что SQL сначала получает все данные, а потом передает их. в данном случае нет никаких команд на агрегирование/сортировку поэтому SQL будет передавать по мере готовности. следовательно, проблема не в Fetch, просто где-то обычная блокировка. |
|
Теги |
ax2009, fetch api_cursor, sql server |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|