Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите плз с Plan Guide (sp_create_plan_guide)  [new]
Georgiy L.
Member

Откуда:
Сообщений: 376
Есть запрос, в профайлере отловил:

exec sp_executesql N'SELECT TOP 1
T1._Q_000_F_001RRef
FROM #tt75 T1 WITH(NOLOCK)
INNER JOIN dbo._CRg600 T2
ON (((((T2._Fld616RRef = T1._Q_000_F_000RRef) AND (T2._Fld601RRef = T1._Q_000_F_001RRef)) AND (T2._ActionPeriod >= DATEADD(DAY,@P1 - 1,DATEADD(MONTH,CAST(DATEPART(MONTH,T1._Q_000_F_002) AS NUMERIC(4)) - 1,DATEADD(YEAR,(CAST(DATEPART(YEAR,T1._Q_000_F_002) AS NUMERIC(4)) - 2000) - 2000,@P2))))) AND (T2._APDateTill >= T1._Q_000_F_002)) AND T2._CalcKindRRef IN
(SELECT
T3._Q_000_F_000RRef AS Q_001_F_000RRef
FROM #tt1 T3 WITH(NOLOCK)))
WHERE (T2._Fld543 = @P3)',N'@P1 numeric(10),@P2 datetime2(3),@P3 numeric(10)',1,'4000-01-01 00:00:00',0


Необходимо к запросу указать хинты через sp_create_plan_guide, непонятны следующие вещи:

1. Запрос содержит временную таблицу #tt75, понятно что номер ее может быть другим в следующем запросе, как с этим быть?
2. Что лучше использовать в данном случае? type = N'SQL' или type = N'TEMPLATE'

Собственно нужно чтобы для каждого запроса применялся определенный индекс (всегда один), по умолчанию план выбирает СКАН без индекса.
Индексы пересобирал, кэши чистил, статистику обновлял.

Спасибо Вам большое за посильную помощь!!!
11 апр 18, 13:05    [21329299]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз с Plan Guide (sp_create_plan_guide)  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
вопрос, почему вы считаете, что приколотив индекс хинтом запросу станет лучше?
11 апр 18, 13:57    [21329488]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз с Plan Guide (sp_create_plan_guide)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7768
Georgiy L.,

для такого запроса руководство планов нельзя использовать. Точнее, оно не будет использовано из-за изменения текста запроса.
11 апр 18, 14:11    [21329558]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз с Plan Guide (sp_create_plan_guide)  [new]
Georgiy L.
Member

Откуда:
Сообщений: 376
Владислав Колосов
Georgiy L.,

для такого запроса руководство планов нельзя использовать. Точнее, оно не будет использовано из-за изменения текста запроса.


Спасибо за ответ! Теперь хоть понятно.
11 апр 18, 14:22    [21329607]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз с Plan Guide (sp_create_plan_guide)  [new]
Georgiy L.
Member

Откуда:
Сообщений: 376
Дедушка
вопрос, почему вы считаете, что приколотив индекс хинтом запросу станет лучше?


Странный вопрос, сейчас индекс вообще не используется, хотя специально создан нужный.
11 апр 18, 14:22    [21329617]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плз с Plan Guide (sp_create_plan_guide)  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
Georgiy L.
Странный вопрос, сейчас индекс вообще не используется, хотя специально создан нужный.
наличие некого индекса как и факт телодвижения по его созданию не означает, что его использование принесёт пользу.
11 апр 18, 14:44    [21329750]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить