Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите разобраться с планом запроса MS SQL  [new]
Андрей_Батькович
Member

Откуда:
Сообщений: 82
Всем привет!
Помогите разобраться с планом запроса MS SQL 2008.
Сам запрос и план во вложении.

У меня два вопроса:
1. Почему для оператора Clustered Index Seek по таблице Reference7, количество выполнений равно нулю, но при этом стоимость у него 42%?
2. Зачем тут нужен оператор Filter, если уже есть Clustered Index Seek?

К сообщению приложен файл (Запрос и план.zip - 2Kb) cкачать
24 апр 14, 11:10    [15927481]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с планом запроса MS SQL  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Андрей_Батькович,

Начну со второго.

2. Это так называемый фильтр со Start Up предикатом. Смысл его состоит в том, чтобы в момент выполнения, не выполнять ветку плана целиком, если известно, что ничего не вернется.
Картинка с другого сайта.

В вашем запросе вы пишете в условие соединения:
T1._Fld777_TYPE = 0x08 AND T1._Fld777_RTRef = @P3 AND T1._Fld777_RRRef = T2._IDRRef
На момент, когда из таблицы T1 будет получена строка, станет известно - нужно ли выполнять соединение по условию T1._Fld777_RRRef = T2._IDRRef, или уже заведомо ничего не соединится, т.к. первая часть ложна. Это и проверяется в фильтре, если нет, то доступ к таблице T2 даже не осуществляется.

1. Было такое значение, что доступ к таблице не осуществлялся, по этому нет реальных строк. А стоимость говорит просто про оценки в момент компиляции. В момент компиляции сервер не знал какие будут значения и предположил определенное число строк,то что отразилось в стоимости.
24 апр 14, 11:50    [15927815]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с планом запроса MS SQL  [new]
Андрей_Батькович
Member

Откуда:
Сообщений: 82
SomewhereSomehow,

Понятно, спасибо за оперативный ответ.
И еще вопрос, какую литературу и/или курсы посоветуете на тему анализа планов запросов?
24 апр 14, 12:09    [15928020]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться с планом запроса MS SQL  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Андрей_Батькович,

Про курсы не скажу это точно.

А про литературу - даже не знаю. В интернете столько всего много, что если начать вспоминать что-то конкретное, то очень долго перечислять. Наверное можно начинать с книг Ицика-Бен Гана, для хорошей базы, потом Кален Дилэйни для понимания внутреннего устройства, кстати, у Дилэйни для 2005 сервера отдельная книга есть про оптимизацию, Бена Неварреса про внутреннее устройство можете почитать, у Пола Уайта хороший блог. Короче, очень много литературы - зависит от вашего начального уровня и желания, ищите, в общем.
24 апр 14, 12:27    [15928202]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить