Пока что удалось найти вот такой пост:
https://github.com/dklinger/dynperf/...I%20Cursor.sql
Вот выдержка из него:
X++:
----------------------------------------------
-- Normal FFO Cursor
----------------------------------------------
-- Fast Forward(16)+Parameterized(4096)+AutoFetch(8192)+AutoClose(16384)
--
set @p5=16+4096+8192+16384 --28688
----------------------------------------------
-- FFO Cursor Retrieving Text or Image Column
----------------------------------------------
-- Fast Forward(16)+Parameterized(4096)+AutoClose(16384)
--
set @p5=16+4096+16384 --20496
----------------------------------------------
-- Pessimistic Lock Cursor
-- This will change soon to be FFO
----------------------------------------------
-- Dynamic(2)+ Parameterized(4096)
--
set @p5=2+4096 --4098
----------------------------------------------
-- Typical Cursor for Form
----------------------------------------------
-- Fast Forward(16)+Parameterized(4096)+AutoFetch(8192)+AutoClose(16384)
--
set @p5=16+4096+8192+16384 --28688
Получается, что у меня почему-то в одном приложении запускается "Pessimistic Lock Cursor" (зачем?!), а в другом "FFO Cursor Retrieving Text or Image Column".
Не пойму почему курсор открывается с Pessimistic Lock?
На всех таблицах, участвующих в Query, свойство OccEnabled установлено в Yes.
В самом Query у всех DataSource свойства:
SelectWithRepeatableRead=No,
ConcurenceModel=Auto.
Настройки Конфигурации конкурентной модели (Администрирование - Настройка - Система - Конфигурации конкурентной модели) обоих приложений одинаковы: "Режим оптимистичной конкуренции включен для таблицы".
PS: Поиск также вывел на книгу "Dynamics AX Performance Optimization Guide" (Martin Zhen & Daniel Liao). Вроде как в ней есть интересная глава "OPTIMIZING DYNAMICS AX SQL STATEMENT". Но, к сожалению, не нашел ее в открытом доступе. Поможет она или нет, не понятно. Может кто встречал такую книгу?