Как используется план выполнения в SQL Server? - PullRequest
1 голос
/ 03 марта 2010

Что такое использование плана выполнения в SQL Server? Когда эти планы могут мне помочь?

Ответы [ 4 ]

1 голос
/ 03 марта 2010

Когда все ваши запросы выполняются быстро, в мире все хорошо, и планы выполнения не имеют большого значения. Однако, когда что-то работает медленно, они очень важны. Они в основном используются для настройки (ускорения) медленного SQL. Без планов выполнения вы просто догадались бы, что изменить, чтобы ваш SQL работал быстрее.

Вот самый простой способ, которым они могут вам помочь. Выполните медленный запрос и выполните следующие действия в окне запроса SQL Server Management Studio:

1) запустить команду:

SET SHOWPLAN_ALL ON 

2) запустите медленный запрос

3) ваш запрос не будет выполнен, но план выполнения будет возвращен.

4) просмотреть вывод столбца PhysicalOp для слова SCAN в любом тексте в этом столбце, это обычно часть запроса, вызывающая замедление. Проанализируйте свои объединения и индекс использования по этой строке вывода, и если вы можете отменить сканирование, вы, как правило, увеличите скорость запроса.

В выводе могут быть полезные столбцы (TotalSubTreeCost и т. Д.), С которыми вы познакомитесь, когда узнаете, как читать планы выполнения и настраивать медленные запросы.

1 голос
/ 03 марта 2010

Это полезно для определения узких мест в длительных запросах. Вы можете добиться впечатляющих улучшений производительности, просто зная, как сервер выполняет ваш сложный запрос.

Если я правильно помню, он также определяет хороших кандидатов для индексации, что является еще одним способом повышения производительности.

1 голос
/ 03 марта 2010

Эти планы описывают, как SQL Server выполняет ваш запрос. Это результат алгоритма, основанного на затратах, оптимизатором запросов SQL Server, который разрабатывает план того, как достичь конечного результата ожидаемым наилучшим возможным способом.

Это полезно, потому что оно покажет вам, на что тратится время в запросе, используются ли индексы или нет, какой тип процесса выполняется для этих индексов (сканирование, поиск) и т. Д.

Таким образом, если у вас плохо выполняющийся запрос, план выполнения выделит наиболее дорогостоящие части и позволит вам увидеть, что нужно оптимизировать (например, может быть отсутствующий индекс, может быть неэффективно записанный запрос, что приводит к сканированию индекса в поисках).

1 голос
/ 03 марта 2010

Когда вам нужно выполнить профилирование производительности для конкретного запроса.

Взгляните на Анализ плана выполнения запросов SQL Server

Когда придет время проанализировать выполнение конкретного запроса, один из лучших методов, чтобы просмотреть план выполнения запроса. Запрос план выполнения описывает, как SQL Оптимизатор запросов к серверу действительно запущен (или запустит) конкретный запрос. это информация, если очень ценно, когда это приходит время выяснить, почему конкретный запрос выполняется медленно.

...