AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.12.2020, 10:44   #1  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Да, это выборка данных при помощи открытого курсора. Как понимаю, выбора идет порционно по мере возможности как выдачи данных 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
Где 123 это номер сессии
За это сообщение автора поблагодарили: mazzy (2), Vadik (1), AlexeyS (3), Logger (3).
Старый 24.12.2020, 10:58   #2  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от 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
Где 123 это номер сессии
Спасибо, с запросом понятно как вытащить. Вопрос, что может мешать считыванию?
__________________
Любую техническую проблему можно решить, если есть достаточно времени и денег.
Старый 24.12.2020, 11:34   #3  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1635 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от demianimp Посмотреть сообщение
Спасибо, с запросом понятно как вытащить. Вопрос, что может мешать считыванию?
Вы можете просмотреть текущие ожидания SQL подобным запросом
https://github.com/TrudAX/TRUDScript...ait-statistics
Чего конкретно ждет один определенный курсор посмотреть вряд ли получится, по запросу можно посмотреть план, если он простой, но наверное можно прикинуть что он может примерно ждать, однако надо представлять что за данные ему передаются
За это сообщение автора поблагодарили: AlexeyS (3).
Старый 24.12.2020, 11:44   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от demianimp Посмотреть сообщение
Есть некий запрос, допустим:
X++:
while select ledgerTrans
Цитата:
Сообщение от trud Посмотреть сообщение
Чего конкретно ждет один определенный курсор посмотреть вряд ли получится
В данном конкретном случае наверное таки можно.
запрос по финансовым проводкам.

скорее всего кто-то в соседней сессии усердно делает разноску в ГК.
(может быть даже в соседнем методе этой сессии).
(может быть даже в период до 29\02\2020).
делает настолько усердно, что SQL эскалировал блокировки до страниц.

в ax2009 по умолчанию кластерный индекс в таблице LedgerTrans установлен по RecID... если была разноска "задним числом", то страницы с данными могут быть перемешаны как угодно.

==========
мне кажется, что основная проблема была в модели, которая была у автора в голове.
автор считал, что SQL сначала получает все данные, а потом передает их.
в данном случае нет никаких команд на агрегирование/сортировку
поэтому SQL будет передавать по мере готовности.

следовательно, проблема не в Fetch, просто где-то обычная блокировка.
__________________
полезное на axForum, github, vk, coub.
Теги
ax2009, fetch api_cursor, sql server

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
sertandev: Empowering D365 FO service endpoints with Azure API Management service Blog bot DAX Blogs 0 15.05.2019 22:11
dynamicsnavax: Hybrid connection - Web Api App for AX 2012 to Azure-part 4 Blog bot DAX Blogs 0 14.09.2017 13:11
gideonvos: API to CDM using Flow in a PowerApp Blog bot DAX Blogs 0 08.09.2017 11:11
goshoom: Open API for JSON-based custom services in AX 7 Blog bot DAX Blogs 0 22.07.2017 14:17
axinthefield: Choosing a Single Deployment or Multiple Deployments of AX2009 Blog bot DAX Blogs 0 15.06.2011 03:25
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:55.