Сведения о вопросе

HOLY

13:51, 4th August, 2020

Теги

Определение Проблем Производительности Сервера SQL

Просмотров: 397   Ответов: 7

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

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



  Сведения об ответе

PHPH

09:54, 6th August, 2020

Это даст вам ТОП-50 операторов по среднему времени CPU, проверьте здесь другие скрипты: http://www.microsoft.com/technet/scriptcenter/scripts/sql/sql2005/default.mspx?ПТР=истина

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


  Сведения об ответе

lats

19:08, 24th August, 2020

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

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

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


  Сведения об ответе

$DOLLAR

02:24, 21st August, 2020

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


  Сведения об ответе

dump

18:01, 27th August, 2020

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


  Сведения об ответе

VCe znayu

15:41, 7th August, 2020

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


  Сведения об ответе

padenie

07:10, 18th August, 2020

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


  Сведения об ответе

crush

20:13, 21st August, 2020

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться