Вопрос

У меня есть запрос, который работает медленно. Я обычно знаю, чтобы сделать производительность быстрее, ограничивать соединения и попытаться использовать Procs вместо прямых запросов. Из-за бизнес-правил я не могу использовать Procs. Я уже сократил количество присоединений столько, сколько я могу думать.

Какой следующий шаг в тюнинг запроса?

Это было полезно?

Решение

Самое простое, что нужно сделать, это перейти к Management Studio Run This Command:

SET SHOWPLAN_ALL ON

Затем запустите свой актуальный запрос.

Вы не получите ваше регулярное набор результатов запроса. Он даст вам план выполнения (очень подробный список того, какой SQL Server делает, чтобы включить ваш запрос) в наборе результатов. Посмотрите на вывод и попробуйте узнать, что это значит. Я обычно ищу «сканирование», это медленная часть, и я пытаюсь переписать его, чтобы он использовал индекс.

Другие советы

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

Вы смотрели на план исполнения, чтобы увидеть, могут ли это улучшить с дополнительными индексами?

Кроме того, вы должны убедиться, что ваши запросы написаны таким образом, чтобы они могли использовать любые индексы, которые являются Представлять эффективно (например, избегать не саркабильных конструкций, избегать *)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top