Какие техники вы используете? Как узнать, какие задания выполняются дольше всего? Есть ли способ узнать о проблемных приложениях?





У меня был хороший успех с инструментами настройки базы данных, предоставляемыми в SSMS или SQL Profiler при работе с SQL Server 2000.
Ключевым моментом является работа с ХОРОШИМ набором образцов, отслеживание части ИСТИННОЙ производственной нагрузки для анализа, который принесет максимальную отдачу от вложенных средств.
Да, в этом случае просто используйте помощник по настройке ядра СУБД, доступный в разделе «Инструменты» в SSMS!
Я использую несколько разных техник.
Если вы пытаетесь оптимизировать конкретный запрос, используйте Query Analyzer. Используйте имеющиеся там инструменты, такие как отображение плана выполнения и т. д.
В вашей ситуации, когда вы не уверены, какой запрос выполняется медленно, одним из самых мощных инструментов, которые вы можете использовать, является SQL Profiler.
Просто выберите базу данных, которую вы хотите профилировать, и позвольте ей сделать свое дело.
Вам нужно дать ему поработать в течение приличного времени (это зависит от трафика вашего приложения), а затем вы можете выгрузить результаты в таблицу и начать их анализ.
Вы захотите просмотреть запросы, которые имеют много операций чтения или занимают много времени процессора и т. д.
Оптимизация - это медвежонок, но продолжайте ее и, самое главное, не предполагайте, что вы знаете, где находится узкое место, найдите доказательства того, где оно находится, и исправьте его.
Шаг 1: Установите Панель мониторинга производительности SQL Server.
Шаг 2: Выгода.
Серьезно, вы хотите начать с просмотра этой панели. Подробнее об установке и использовании можно найти здесь и / или здесь
Я использую SQL Profiler, поставляемый с SQL Server. Большинство обнаруженных мною плохо выполняющихся запросов не используют много ЦП, но создают массу операций ввода-вывода на диск.
Я обычно устанавливаю фильтры на чтение с диска и ищу запросы, которые, как правило, выполняют более 20 000 операций чтения. Затем я смотрю на план выполнения этих запросов, который обычно дает вам информацию, необходимую для оптимизации запроса или индексов задействованных таблиц.
Чтобы определить проблемные запросы, запустите Profiler, выберите следующие события:
отфильтровать вывод, например, по
В зависимости от того, что вы хотите оптимизировать. Обязательно отфильтруйте вывод достаточно, чтобы в вашем окне не прокручивались тысячи строк данных, потому что это повлияет на производительность вашего сервера!
Полезно записывать вывод в таблицу базы данных для последующего анализа. Также полезно запускать системный монитор Windows параллельно для просмотра загрузки процессора, дискового ввода-вывода и некоторых счетчиков производительности сервера sql. Настройте sysmon для сохранения данных в файл.
Затем вам нужно получить типичную производственную нагрузку запросов и объем данных в вашей базе данных, чтобы увидеть значимые значения с помощью профилировщика.
После получения вывода от профилировщика вы можете прекратить профилирование.
Затем снова загрузите сохраненные данные из таблицы профилирования в профилировщик и используйте importmenu для импорта вывода из systemmonitor, и профилировщик сопоставит вывод sysmon с данными профилировщика sql. Это очень приятная особенность.
В этом представлении вы можете сразу определить узкие места, связанные с вашей памятью, диском или системой процессора.
Когда вы определили несколько запросов, которые хотите оптимизировать, перейдите в анализатор запросов, просмотрите план выполнения и попытайтесь оптимизировать использование индекса и дизайн запроса.
Спасибо за ответ, это SQL Server 2005, но я считаю, что мастер настройки базы данных все еще существует (я обновил вопрос)