Блог инженеров технической поддержки SQL Server. Microsoft. Россия

Блог инженеров технической поддержки SQL Server. Microsoft. Россия

Основы анализа производительности SQL Server

Основы анализа производительности SQL Server

  • Comments 7
  • Likes

В любом севере, работающем под управлением ОС Windows (да наверное и не только Windows), есть компоненты от которых зависит его (сервера) производительность. Такими компонентами являются:

  • процессоры;
  • память;
  • диски;
  • сеть.

Примечание: При рассмотрении примеров в блоге мы не будем учитывать наличие ошибок в коде, которые, в конечном счете, тоже могут влиять на производительность.

При отыскании причин низкой производительности (особенно современных дорогостоящих систем) всегда встают вопросы:

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

Обнаружить, что система перегружена по любой из вышеперечисленных компонент не сложно. Для этого можно воспользоваться Task Manager-ом или Performance Monitor-ом и сравнить текущие значения с пороговыми (а они широко опубликованы в Интернете) и вы получите желаемый результат.

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

И так. Общий алгоритм анализа производительности и ответа на оба вопроса приведен ниже.

Измерить базовые счетчики для каждой компоненты (подсистемы) сервера и сравнить их показания с пороговыми значениями,

  • если показатели подошли (или превысили пороговые), то приступить к анализу SQL Server с целью определения подсистем SQL Server "съевших" вычислительные мощности сервера.
  • если показатели не превышают пороговые, то быстрее всего проблема медленной работы SQL Server лежит в области неоптимальности самого SQL Server и в этом случае вам, быстрее всего, потребуется подробный анализ SQL Server с помощью SQL Profiler Trace, DMV, DBCC и пр.

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

Далее мы последовательно начнем рассмотрение основ анализа производительности SQL Server, компонента за компонентой. Первые четыре статью будут описывать основы анализа (отыскание корневой проблемы (Root Cost Analysis)). Цель такого анализа - выйти на основной (корневой) источник проблемы.

Александр Каленик, Senior Premier Field Engineer (PFE), MSFT (Russia) 

Comments
  • Давно искал что-то подобное. Буду с нетерпением ждать продолжения.

  • а можно вам присылать свои случаи из практики, или примеры удачного и полезного траблешутинга? или это не такой блог?

  • Орфография!

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment