18.12.2017, 14:59 | #1 |
Участник
|
Параметр Scroll Option при создании курсора sp_cursorprepexec
Добрый день!
Ax 4.0, база данных SQL Server 2008 R2. При создании курсора в БД SQL аксапта пользуется процедурой sp_cursorprepexec, создавая запрос примерно такого вида: X++: 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 nvarchar(8)', N'SELECT ... FROM LEDGERTRANS A,LEDGERJOURNALTRANS B WHERE ((A.DATAAREAID=@P1) ...', @p5 output, @p6 output, @p7 output, N'dat' select @p1, @p2, @p5, @p6, @p7 Вопрос в том, возможно ли как-то влиять на этот параметр настройками или аксапта сама решает какие значения туда подставлять? Проблема возникла в небольшом отчете. В боевом приложении отчет стал страшно тупить. Однако в тестовом приложении отрабатывает моментально. Код обоих отчетов в приложениях одинаков. База и приложение синхронизировались относительно недавно (где-то месяц назад). Расследование с помощью профайлера показало, что на боевом приложении в этот параметр передается значение: @p5 = 4098, т.е. сумму флагов DYNAMIC | PARAMETERIZED_STMT. В тестовом приложении в этот параметр передается значение: @p5 = 20496, т.е. сумму флагов FAST_FORWARD | PARAMETERIZED_STMT | AUTO_CLOSE. Разный набор флагов кардинально меняет план исполнения запроса, что приводит к замедлению исполнения. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|