Устранение неполадок медленного выполнения запросов SQL Server 7.0 или более поздней версии

Переводы статьи Переводы статьи
Код статьи: 243589 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В данной статье описывается обработка проблемы с производительностью, приложения могут возникнуть в сочетании с Microsoft SQL Server: снижение производительности конкретного запроса или запросов. Если устранить проблемы с производительностью, но не удалось проблема конкретного запроса или небольшой группе запросов, выполняющих медленнее, чем ожидалось, обратитесь к следующей статье базы знаний Майкрософт, прежде чем продолжить:
224587 Устранение производительность приложений с помощью SQL Server
Эта статья основана на предположении, что использовалась статья 224587 сузить масштабы проблемы и сбора трассировки приложения SQL Profiler с конкретных событий и столбцов данных, которые подробно описаны в статье 224587.

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

Примечание При использовании SQL Server 2005, используйте вместо SQL Query Analyzer SQL Server Management Studio и использовать помощник по настройке ядра СУБД, а не мастера настройки индексов.

Проверка наличия правильных индексов

Одним из сначала проверяет, выполняются при наличии медленного запроса времени выполнения является анализ индекса. При изучении одного запроса можно использовать Выполнение анализа индекса параметр в анализаторе запросов SQL; Если трассировка SQL Profiler большой рабочей нагрузки, можно использовать мастер настройки индексов. Оба метода использовать оптимизатор запросов SQL Server для определения, какие индексы будут полезны для указанного запросов. Это очень эффективный метод для определения, существует ли правильных индексов в базе данных.

Для получения сведений о том, как использовать мастер настройки индексов, см. в разделе «Мастер настройки индексов» в электронной документации по SQL Server 7.0.

Если приложение была обновлена из предыдущей версии SQL Server, различных индексов может быть более эффективным в SQL Server 7.0 из-за изменения механизма хранения и оптимизатор. Мастер настройки индексов помогает определить, если изменения в стратегии индексирования улучшить производительность.

Для получения дополнительных сведений о том, как использовать мастер настройки индексов в SQL Server 2005 помощник по настройке ядра СУБД в следующих разделах в электронной документации по SQL Server 2005:
  • Различия между базой данных по настройке ядра СУБД и мастер настройки указателей
  • Учебник по настройке ядра базы данных

Удаление всех запросов, таблиц и подсказки по соединению

Подсказки переопределяют оптимизации запросов и может помешать оптимизатору запросов выбрать самый быстрый план выполнения. Из-за изменения оптимизатор подсказки, что повышение производительности в более ранних версиях SQL Server не работает, или может фактически привести к изменению влияет на производительность SQL Server 7.0. Кроме того подсказки по соединению может привести к снижению производительности, основываясь на следующих причин:
  • Подсказки по соединению запрещает нерегламентированный запрос для автоматической параметризации и кэширование плана запроса.
  • Используйте подсказки соединения означает, вы хотите выполнить принудительный порядок соединения для всех таблиц в запросе, даже если эти соединения не явно использовать подсказку.
Если запрос, который вы анализируете включает все подсказки, удалите их и затем флажок повторно оценить производительность.

План выполнения

После подтверждения наличия правильных индексов и что нет подсказок ограничивая способность оптимизатора создавать эффективный план можно изучить план выполнения запроса. Для просмотра плана выполнения запроса можно использовать любой из следующих способов:
  • Приложение SQL Profiler

    Если захват MISC:Execution план в приложении SQL Profiler, она возникнет событие непосредственно перед StmtCompleted события для запроса для определенного идентификатор системного процесса (SPID).
  • Анализатора запросов SQL: Графический Showplan

    С помощью запроса, выбранной в окне запроса, нажмите кнопку Запрос меню, а затем нажмите кнопку Показать предполагаемый план выполнения.

    ПРИМЕЧАНИЕ: Если хранимой процедуре или пакете создает ссылки на временные таблицы, необходимо использовать инструкции SET STATISTICS PROFILE ON или явным образом создать временные таблицы, прежде чем отобразить план выполнения.
  • SHOWPLAN_ALL и SHOWPLAN_TEXT

    Для получения текста версии расчетный план выполнения, можно использовать параметры SET SHOWPLAN_ALL и SET SHOWPLAN_TEXT. Содержатся в разделе «SET showplan_all (T-sql)» и "SET showplan_text (T-sql)" разделы документации по SQL Server 7.0 для получения дополнительных сведений.

    ПРИМЕЧАНИЕ: Хранимой процедуры или пакета создается и ссылается на временные таблицы, необходимо использовать параметр инструкции SET STATISTICS PROFILE ON или явного создания временных таблиц перед выводом плана выполнения.
  • ПРОФИЛЬ СТАТИСТИКИ

    При отображении расчетный план выполнения, графически или с помощью инструкции SHOWPLAN, запрос фактически не выполняется. Таким образом Если в пакете или хранимой процедуре создания временных таблиц, не удается отобразить расчетных планов выполнения, так как временные таблицы не существует. ПРОФИЛЬ СТАТИСТИКИ сначала выполняет запрос, а затем отображает фактический план выполнения. В разделе «SET STATISTICS PROFILE (T-sql)» в электронной документации по SQL Server 7.0 для получения дополнительных сведений. При работе в SQL Query Analyzer, он отображается в графическом формате на План выполнения Вкладка в области результатов.
Для получения дополнительных сведений о том, как отобразить расчетный план выполнения в SQL Server 2005 см. раздел «Как Отображение расчетного плана выполнения» в электронной документации по SQL Server 2005.

Просмотрите выходные данные инструкции Showplan

Выходные данные Showplan предоставляет массу информации о плане выполнения, SQL Server использует для определенного запроса. Подробные сведения о данных и события, создаваемые рассматриваются подробно в главе «Оптимизация производительности базы данных» из SQL Server 7.0 Books Online. Ниже перечислены некоторые основные аспекты плана выполнения, можно просмотреть, чтобы определить, используется ли лучший план.
  • Правильное использование индексов

    Выходные данные showplan отображает каждую таблицу, участвующую в запросе и пути доступа, используемый для получения данных из него. С помощью графического showplan наведите указатель на таблицу для просмотра подробной информации для каждой таблицы. Если используется индекс, можно увидеть «Index Seek»; Если индекс не используется, можно увидеть «Table Scan» для кучи — либо «Кластеризованный индекс сканирования» для таблицы с кластеризованным индексом. «Кластеризованный индекс сканирования» указывает, что таблица просматривается через кластеризованного индекса не что кластеризованный индекс используется для непосредственного доступа к отдельным строкам.

    Если установлено, что существует полезного индекса, и он используется для запроса, попробуйте выполнить принудительный индекс с помощью подсказки индекса. В разделе «Из (T-SQL)» в электронной документации по SQL Server для получения дополнительных сведений о подсказок индекса.
  • Правильный порядок соединения

    Выходные данные инструкции showplan показывает, в каком порядке объединяются таблиц, участвующих в запросе. Для соединения вложенных циклов верхней таблице, перечисленных является внешней таблицы и должен быть меньшего из двух таблиц. Для хэш-соединений верхняя таблица становится вход и также должно быть меньшего из двух таблиц. Однако обратите внимание, что порядок не столь важно, поскольку обработчик запросов может аннулировать построения и probe входных данных во время выполнения, если находит, что оптимизатор сделаны неправильные решения. Чтобы определить, какие таблицы возвращается меньше записей, проверяя оценивает количество строк в выходных данных инструкции showplan.

    Если выяснится, что запрос может выиграть от другой порядок соединения, можно попробовать принудительный порядок соединения с помощью подсказки соединения. В разделе «Из (T-SQL)» в электронной документации по SQL Server 7.0 для получения дополнительных сведений о подсказки по соединению.

    ПРИМЕЧАНИЕ: Использование подсказка соединения в больших запросов неявно заставляет порядок соединения для других таблиц в запросе, если инструкция FORCEPLAN.
  • Правильный тип объединения

    SQL Server использует вложенный цикл хэш и соединения слиянием. Если медленного выполнения запросов использует один прием соединения на другой, можно попробовать принудительного объединения различных типов. Например если запрос использует хэш-соединения, можно принудительно соединением вложенных циклов с помощью ЦИКЛА подсказка соединения. В разделе «Из (T-SQL)» в электронной документации по SQL Server 7.0 подробнее на подсказки по соединению.

    ПРИМЕЧАНИЕ: Использование подсказка соединения в больших запросов неявно заставляет типа объединения для таблиц в запросе, если инструкция FORCEPLAN.
  • Параллельное выполнение

    При использовании многопроцессорного компьютера, также можно выяснить, является ли использование параллельного плана. При использовании параллелизма, см. ПАРАЛЛЕЛИЗМ События (сбор потоков). Если определенный запрос происходит медленно, при использовании параллельных планов, можно попробовать форсирование планов не параллельных с помощью подсказки OPTION (MAXDOP 1). В разделе «Выбор (T-SQL)» в электронной документации по SQL Server 7.0 для получения дополнительных сведений.
Для получения дополнительных сведений об использовании результатов работы плана выполнения инструкции Showplan в SQL Server 2005 в следующих разделах в электронной документации по SQL Server 2005:
  • Как сохранить план выполнения в формате XML
  • Представление Showplan в формате XML
  • Безопасность Showplan
ВНИМАНИЕ!: Так как оптимизатор запросов обычно выбирает наилучший план выполнения для запроса, корпорация Microsoft рекомендует использовать подсказки соединения, подсказки в запросе и табличные подсказки только в качестве последнего средства, и только в том случае, если являются опытными администраторами баз данных.

Ссылки

Следующие разделы документации по SQL Server 7.0 предоставляют сведения об оптимизации запросов:
  • «Оптимизация производительности приложения, используя эффективные методы извлечения данных»
  • «Настройка запроса»
  • «Рекомендации по настройке запроса»
  • «Советы по transact-SQL»

Свойства

Код статьи: 243589 - Последний отзыв: 4 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Ключевые слова: 
kbsqlsetup kbhowtomaster kbmt KB243589 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:243589

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com