T-SQL - ОПЦІЯ (FAST x) та прапор трасування 8722


9

Я довго шукав і досі не знайшов відповіді на свою проблему.

Наш Dynamics AX генерує запити за допомогою підказки OPTION (FAST x), який іноді змушує використовувати поганий план виконання. Розробники кажуть, що це за замовчуванням і важко змінити (має бути зафіксовано на всіх формах потенційно).

Отож, я шукав спосіб змінити ці підказки, використовуючи сліди слідів. Я знайшов прекрасний прапор трас 8722, який, як стверджується, змушує SQL Server ігнорувати деякі підказки запитів, особливо ті, що в пункті OPTION.

Однак у моєму випадку це не працює. Я також намагався включити прапор трассировки 8602 (відключити підказки індексу), але мій запит все ще працює із підказкою FAST x (це набагато повільніше, ніж коли я фактично видаляю пункт OPTION).

Я також намагався очистити кеш плану, але безрезультатно.

Будь-які ідеї? Я щось пропускаю?

PS Я включив прапори слідів у всьому світі, це видання для розробників SQL Server 2012


1
Як ви ввімкнули прапори слідів? Ви ввімкнули це через запуск сервера або за допомогою dbcc traceon? dbcc traceon - це прапор сліду за кожним з'єднанням, тому ввімкнення його в одному клієнтському з'єднанні не впливає на інші з'єднання сервера. Щоб увімкнути його на сервері широко, потрібно додати -T <traceflagnumber> до командного рядка запуску. Я вважаю, що ви можете використати dccc traceon (flag1, flag2, ..., - 1), щоб застосувати його на сервері широко, але я ніколи його не пробував.
Майк

Привіт Майку, я включив прапори слідів у всьому світі, використовуючи DBCC TRACEON (8722, -1), а потім перевірив стан з DBCC TRACESTATUS. Можливо, прапор трас вже не підтримується офіційно або мені фактично потрібно ввести його в параметр запуску і перезапустити службу, або це предмет CU3 (я запускаю 2012 SP2 RTM).

Відповіді:


10

Наскільки мені відомо, сліди прапорів 8722, 8755 та 8602 ніколи не були офіційно задокументовані. Востаннє я пам'ятаю, що вони були ефективними в SQL Server 2000, тому не дивно, що ви виявили, що вони ігноруються в SQL Server 2012.

Для конкретних шаблонів запитів часто можна видалити FAST nпідказку за допомогою довідників плану. Незважаючи на це, найкраще виправити - це змусити розробників AX зафіксувати це на стороні програми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.