Как лучше всего отслеживать проблемы параллелизма SQL Server?
Каков наилучший способ отслеживания проблем совпадения SQL Server? В частности, моя цель состоит в том, чтобы уменьшить или предотвратить взаимные блокировки и блокировки и выявить потенциальные проблемы, прежде чем они станут проблемой.
Например, если бы я следил за счетчиками производительности Windows на предмет использования памяти, я мог бы предсказать, когда проблемы с памятью станут проблемой. Я ищу аналогичный подход, который отслеживает проблемы параллелизма.
2 ответа
Используя perfmon, категории MSSQL:Latches и MSSQL:Locks имеют счетчики, которые кажутся как можно ближе.
Теперь ясно, что БД не обладает "способностью к параллелизму", которую можно измерить. (Не то же самое, что сервер имеет емкость, которую можно измерить).
Приложения, которые вчера работали нормально, могут внезапно начать блокироваться. Из-за повышения блокировки, новых планов запросов и т.д...
Если вы помните, что трассировка на стороне сервера всегда оказывает некоторое влияние на производительность, и вы взвесили преимущество по сравнению с накладными расходами, то вы можете настроить трассировку на стороне сервера для поиска:
- График тупиков для тупиков
- Отчет о заблокированных процессах для блокировки. Вам нужно будет сначала настроить параметр порога заблокированного процесса, прежде чем вы сможете отслеживать это событие