Вопрос

У нас возникают спорадические, случайные тайм-ауты запросов в нашем кластере SQL Server 2005.У меня есть несколько приложений, которые используют его, так что я помогаю в расследовании.Наблюдая за процентом процессорного времени в обычном Perfmon, вы, конечно, можете увидеть, как он меняется.Однако SQL activity monitor показывает только совокупное время процессора и ввода-вывода, используемое процессом, а не то, что он использует прямо сейчас или за определенный промежуток времени.Возможно, я мог бы воспользоваться профилировщиком и запустить трассировку, но этот кластер очень интенсивно используется, и я боюсь, что мне пришлось бы искать иголку в стоге сена.Я лаю не на то дерево?

Есть ли у кого-нибудь хорошие методы для отслеживания дорогостоящих запросов / процессов в этой среде?

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

Решение

Это даст вам 50 лучших операторов по среднему времени процессора, проверьте здесь наличие других скриптов: http://www.microsoft.com/technet/scriptcenter/scripts/sql/sql2005/default.mspx?mfr=true

SELECT TOP 50
        qs.total_worker_time/qs.execution_count as [Avg CPU Time],
        SUBSTRING(qt.text,qs.statement_start_offset/2, 
            (case when qs.statement_end_offset = -1 
            then len(convert(nvarchar(max), qt.text)) * 2 
            else qs.statement_end_offset end -qs.statement_start_offset)/2) 
        as query_text,
        qt.dbid, dbname=db_name(qt.dbid),
        qt.objectid 
FROM sys.dm_exec_query_stats qs
cross apply sys.dm_exec_sql_text(qs.sql_handle) as qt
ORDER BY 
        [Avg CPU Time] DESC

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

Я нашел тот самый Отчеты панели мониторинга производительности быть очень полезным.Они представляют собой набор пользовательских отчетов RS, предоставляемых Корпорацией Майкрософт.Вам просто нужно запустить программу установки на вашем клиентском компьютере, а затем запустить setup.sql на экземпляре SQL Server.

После этого щелкните правой кнопкой мыши на базе данных (неважно, какой именно) в SSMS и перейдите к отчетам -> Пользовательские отчеты.Перейдите к файлу performance_dashboard_main.rdl и выберите его, который по умолчанию находится в папке \Program Files\Microsoft SQL Server\90 ools\PerformanceDashboard.Вам нужно сделать это только один раз.После первого раза он появится в списке отчетов.

Помимо прочего, на главной панели мониторинга будет показана загрузка процессора с течением времени.Вы можете время от времени обновлять его.Когда вы увидите всплеск, просто нажмите на полосу на графике, чтобы получить подробные данные, стоящие за ней.

Мы используем квесты Прожектор продукт.Очевидно, что это инвестиция во время и деньги, поэтому это может не помочь вам в краткосрочной перспективе, но если у вас большая среда SQL, это довольно полезно.

Как говорит Яаков, запустите profiler на несколько минут при обычной загрузке и сохраните результаты в таблице, которая позволит вам выполнять запросы к результатам, значительно упрощая обнаружение любых запросов, связанных с перерасходом ресурсов.

Профилировщик может показаться подходом "иголка в стоге сена", но он может дать что-то полезное.Попробуйте запустить его в течение пары минут, пока базы данных находятся под обычной нагрузкой, и посмотрите, не выделяются ли какие-либо запросы как отнимающие слишком много времени или каким-либо образом перегружающие ресурсы.Хотя подобная ситуация может указывать на какую-то общую проблему, она также может быть связана с какой-то конкретной проблемой с одним или двумя сайтами, которые при определенных обстоятельствах приводят к очень низкой производительности по всем направлениям.

Запустите профилировщик и отфильтруйте запросы, которые требуют больше определенного количества операций чтения.Для приложения, над которым я работал, любой запрос, не содержащий отчетов, который потребовал более 5000 чтений, заслуживал повторного рассмотрения.Ваше приложение может иметь другой порог, но идея та же.

Эта утилита автор: Эрланд Соммарског, это потрясающе полезно.

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

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