Поделись сейчас:
Содержание скрывать

1. Введение в SQL Server Performance Monitor

1.1 Что такое SQL Server Монитор производительности?

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

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

1.2 Основные преимущества мониторинга производительности

Эффективный SQL Server Монитор производительности обеспечивает несколько важных преимуществ:

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

1.3 Распространенные проблемы с производительностью

Без надлежащего мониторинга производительности базы данных SQL организации сталкиваются с рядом рисков:

  • Неожиданные простои, нарушающие работу предприятия
  • Низкая производительность приложения, влияющая на удобство использования
  • Потеря или повреждение данных
  • Неэффективное использование ресурсов, приводящее к ненужным затратамosts
  • Разочарованные пользователи и потенциальная потеря дохода

По данным исследования IDC за 2023 год, 65% проблем с производительностью баз данных возникают из-за неэффективных методов мониторинга или оптимизации.

2. Знакомство с монитором производительности Windows (PerfMon)

2.1 Что такое монитор производительности Windows?

Windows Performance Monitor (PerfMon) — это встроенный инструмент Windows, который отслеживает системные ресурсы и производительность приложений. SQL Server администраторам PerfMon предоставляет неоценимую информацию как об операционной системе, так и SQL Server метрики, что делает их необходимыми для комплексного анализа производительности.

Монитор производительности Windows (PerfMon)

PerfMon регулярно измеряет статистику производительности и сохраняет её в файлах для последующего анализа. Администраторы баз данных могут выбрать временной интервал, формат файла и статистику для мониторинга. Инструмент не SQL Server-specific — системные администраторы используют его для мониторинга самой Windows, Exchange, файловых серверов и любых приложений, которые могут испытывать узкие места.

2.2 Запуск монитора производительности

Запустить Performance Monitor можно несколькими способами:

  1. Нажмите Начать, напишите Perfmon В поле поиска нажмите «Performand Monitor» в результатах поиска:
    Поиск и сtart PerfMon из окна поиска Windows.
  2. Press Windows + R, напишите Perfmon, и нажмите Enter
    Start PerfMon из окна запуска Windows.
  3. Перейдите в Панель управления -> Система и безопасность -> Администрирование -> Performance Monitor
    Start PerfMon из Панели управления -> Система и безопасность -> Администрирование -> Монитор производительности

3. существенный SQL Server Счетчики производительности

3.1 Счетчики производительности памяти

Счетчики памяти имеют решающее значение для мониторинга SQL Server производительность, поскольку они показывают, имеет ли ваша база данных достаточные ресурсы памяти.

Доступные Мбайт

Этот счётчик показывает объём физической памяти, доступной для немедленного выделения. Он должен оставаться достаточно постоянным и в идеале не опускаться ниже 4096 МБ. Низкие значения могут указывать на то, что SQL ServerМаксимальный объем памяти остается на уровне по умолчанию или неSQL Server приложения потребляют память.

Страница Ожидаемая продолжительность жизни

Ожидаемая продолжительность жизни страницы измеряет, как долго (в секундах) страница остаётся в пуле буферов без обращения к ней. Нормальное значение — 300 секунд и более. Более низкие значения указывают на нехватку памяти и чрезмерный оборот буфера, что снижает эффективность кэширования.

Коэффициент попадания в кэш-буфер

Этот счётчик показывает процент запросов данных, обработанных с использованием кэша буфера SQL (памяти), а не чтения с диска. Обычно он равен или превышает 99%. Более низкие значения указывают на то, что SQL Server нужно больше памяти или он все еще нагревается после перезагрузкиtart.

Ожидаются гранты памяти

Это показывает количество процессов, ожидающих памяти в течение SQL ServerВ нормальных условиях это значение должно быть всегда равно 0. Более высокие значения указывают на недостаточное выделение памяти для SQL Server.

Tarполучить память сервера против общей памяти сервера

Target Server Memory указывает идеальный объем памяти SQL Server хочет использовать. Общая память сервера показывает, что SQL Server В настоящее время используется. Соотношение между этими значениями должно быть приблизительно равно 1. Значительные различия могут указывать на нехватку памяти или её недостаток.

3.2 Счетчики производительности процессора

Счетчики ЦП помогают выявить узкие места процессора и понять, как SQL Server использует вычислительные ресурсы.

% процессорного времени

Этот показатель измеряет процент времени, которое процессор тратит на выполнение потоков, не находящихся в состоянии ожидания. На активных серверах значения могут резко возрастать до 100%, но устойчивая загрузка более 70–75% обычно указывает на проблемы с производительностью для пользователей. Отсутствие или некорректность индексов часто приводит к высокой загрузке процессора.

% привилегированного времени

Процессорное время разделяется на обработку в пользовательском режиме и режиме привилегированного (ядра). Весь доступ к диску и операции ввода-вывода выполняются в режиме ядра. Если значение этого счётчика превышает 25%, система, вероятно, выполняет слишком много операций ввода-вывода. Нормальные значения находятся в диапазоне от 5% до 10%.

Длина очереди процессора

Этот счётчик показывает потоки, ожидающие ресурсов ЦП. Значения постоянно выше 1 (за исключением периодов SQL Server Сжатие резервных копий) указывает на нагрузку на процессор. Это часто означает, что на нём установлены другие приложения. SQL Server машина, которая нарушает передовую практику.

Контекстных переключений/сек

Этот параметр измеряет частоту переключения процессора между потоками. Чрезмерное переключение контекста может снизить производительность и указывать на высокую нагрузку на систему.

3.3 Счетчики производительности дискового ввода-вывода

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

% Время на диске

Этот показатель измеряет процент времени, в течение которого диск был занят операциями чтения/записи. Значения, постоянно превышающие 85%, указывают на наличие узкого места в системе ввода-вывода. Поскольку диск работает значительно медленнее памяти, снижение этого показателя повышает производительность.

Среднее время чтения с диска (сек.) и среднее время записи с диска (сек.)

Эти счётчики измеряют среднее время (в секундах) операций чтения и записи. Если средние значения превышают 10–20 мс, диск обрабатывает данные слишком долго. Диски журнала транзакций требуют особенно высокой скорости записи.

Длина очереди диска

Здесь отображаются невыполненные запросы на чтение/запись на диск. Значения, постоянно превышающие 2 (или 2 на диск для RAID-массивов), указывают на то, что диск не справляется с запросами ввода-вывода.

Дисковые байты/сек.

Этот параметр отслеживает скорость передачи данных на диск и с него. Если она превышает номинальную ёмкость диска, данные начинают накапливаться, что отображается увеличением длины очереди диска.

Передачи дисков/сек.

Это отслеживает количество операций чтения/записи, выполненных на диске. SQL Server Доступ к данным обычно осуществляется случайным образом, что замедляет процесс из-за движения головки диска. Убедитесь, что это значение ниже максимального значения для вашего диска (обычно 100/с для стандартных дисков).

3.4 SQL Server Специальные счетчики

3.4.1 Счетчики менеджера буферов

Монитор счетчиков Buffer Manager SQL ServerОперации с буфером памяти:

  • Прочтений страниц/сек: Общее количество прочтений физических страниц базы данных
  • Записей страницы/сек: Общее количество физических записей страниц базы данных
  • Ленивых записей/сек: Количество буферов, записанных ленивым писателем для освобождения памяти
  • Страниц контрольной точки/сек: Страницы, очищенные контрольной точкой или другими операциями, требующими очистки всех грязных страниц

3.4.2 Счетчики статистики SQL

Эти счетчики дают представление о SQL Server обработка запросов:

  • Пакетных запросов/сек: Количество пакетных SQL-запросов, полученных сервером. Это служит ориентиром для оценки активности сервера.
  • Компиляций SQL/сек: Количество компиляций SQL. Должно быть не более 10% от общего числа пакетных запросов в секунду.
  • Перекомпиляции SQL/сек: Количество перекомпиляций SQL. Также должно быть не более 10% от общего числа пакетных запросов в секунду.

3.4.3 Счетчики общей статистики

  • Подключения пользователей: Количество пользователей, подключенных к системе. Используется в качестве ориентира для отслеживания роста числа подключений с течением времени.
  • Заблокированные процессы: Текущее количество заблокированных процессов. В идеале должно быть равно 0.

3.4.4 Счетчики менеджера памяти

  • Ожидаются гранты памяти: Общее количество процессов, ожидающих выделения памяти рабочей области. В идеале должно быть равно 0.

4. Настройка монитора производительности для SQL Server(Windows Vista/Server 2008 и более поздние версии)

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

  • Для Windows Vista/Server 2008 и более поздних версий в этом разделе можно создать наборы сборщиков данных.
  • Для Windows XP/Server 2003 и более ранних версий вы можете создать журналы счетчиков в следующий раздел.

4.1 Что такое наборы сборщиков данных?

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

4.2 Создание набора сборщиков данных

Создайте собственный набор сборщиков данных для мониторинга SQL Server счетчики производительности:

  1. Открыть монитор производительности
  2. Расширьте Наборы сборщиков данных
  3. Щелкните правой кнопкой мыши User Defined
  4. Выберите Новое -> Набор сборщиков данных
    Создайте новый набор сборщиков данных в PerfMon
  5. Введите описательное имя (например, «SQL Server Показатели производительности»)
  6. Выберите Создать вручную (Дополнительно)
    Задайте имя описания для набора сборщиков данных
  7. Нажмите Следующая
  8. Проверка Создать журналы данных -> Счетчик производительности
    В мастере создания нового набора сборщиков данных выберите Создать журналы данных -> Счетчик производительности.
  9. Нажмите Следующая
  10. Нажмите Добавить для выбора счетчиков
  11. Добавить желанный SQL Server и системные счетчики.
    Добавьте счетчики производительности в новый набор сборщиков данных.
  12. Поставьте Интервал выборки
    • Для рутинного мониторинга используйте 1 минуту (60 секунд).
    • Для активного устранения неполадок используйте 15–30 секунд.
    • Избегайте проведения высокочастотных захватов в течение длительного времени, поскольку это может повлиять на производительность и привести к генерации избыточного объема данных.

    Установите интервал выборки в новом мастере настройки сборщика данных.

  13. Нажмите Следующая
  14. Выберите место для сохранения журналов
    Укажите место сохранения данных о производительности в новом мастере настройки сборщика данных.
  15. Нажмите Завершить, будет создан новый набор сборщиков данных.
  16. По умолчанию новый набор сборщиков данных будет НЕ быть сtarTED автоматически. Вам нужно найти его на левой панели, под Эффективности -> Наборы сборщиков данных -> User Defined -> Ваш сборщик данных, щелкните его правой кнопкой мыши и выберите Начать
    Starновый набор сборщиков данных в PerfMon.

4.3 Ключевые счетчики для добавления

  • Память -> Доступно МБ
  • Физический диск -> Среднее время чтения с диска (все экземпляры, кроме _Total)
  • Физический диск -> Среднее время записи на диск (сек.) (все экземпляры, кроме _Total)
  • Физический диск -> Операции чтения с диска/сек (все экземпляры, кроме _Total)
  • Физический диск -> Записи на диск/сек (все экземпляры, кроме _Total)
  • Процессор -> % загруженности процессора (все экземпляры, кроме _Total)
  • SQLServer: Общая статистика -> Подключения пользователей
  • SQLServer: Диспетчер памяти -> Ожидание предоставления памяти
  • SQLServer: Статистика SQL -> Пакетных запросов/сек
  • SQLServer: Статистика SQL -> Компиляции SQL/сек
  • SQLServer: Статистика SQL -> Перекомпиляции SQL/сек
  • Система -> Длина очереди процессора

4.4 Установка условий остановки

Настройте условия остановки, чтобы предотвратить неограниченный рост данных:

  1. После создания набора сборщиков данных щелкните его правой кнопкой мыши и выберите Основные свойства
  2. Нажмите Условие остановки таб
  3. Включите Общая продолжительность
  4. Установить продолжительность на 1 день (24 часа)
  5. Нажмите OK сохранить

Установите условие остановки для набора сборщиков данных

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

4.5 Планирование сбора данных

Автоматизируйте сбор данных для обеспечения последовательного мониторинга:

  1. Щелкните правой кнопкой мыши свой набор сборщиков данных и выберите Основные свойства
  2. Нажмите Назначить таб
  3. Нажмите Добавить создать новый график
  4. Настроить сtarдата и время
  5. Установить шаблон повторения (например, ежедневно)
  6. Нажмите OK сохранить расписание

Установите расписание для набора сборщиков данных

Для автоматических сtartup, настройте набор сборщиков данных на start при загрузке сервера путем создания какtarтриггер tup в планировщике заданий Windows.

5. Настройка монитора производительности для SQL Server(Windows XP/Server 2003 и более ранние версии)

В Windows XP/Server 2003 и более ранних версиях вы можете создавать журналы счетчиков, которые позволяют выбирать набор счетчиков производительности и периодически записывать их в файл.

5.1 Создание журналов счетчиков

Чтобы создать новый журнал счетчика, выполните следующие действия:

  1. Открыть монитор производительности
  2. Расширьте Журналы и оповещения производительности на левой панели
  3. Щелкните правой кнопкой мыши Журналы счетчиков
  4. Выберите Новые настройки журнала
  5. Назовите журнал именем сервера вашей базы данных (например, «ProductionSQL01»).
  6. Нажмите OK начать настройку

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

5.2 Добавление счетчиков производительности

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

  1. Нажмите Добавить счетчики кнопка
  2. Измените имя компьютера так, чтобы оно указывало на ваш SQL Server пример
  3. Press Tab для загрузки доступных объектов производительности
  4. Выберите объект производительности из раскрывающегося списка (например, Память)
  5. Выберите конкретные счетчики из список
  6. Выберите экземпляры, если применимоcable (например, отдельные процессоры или диски)
  7. Нажмите Добавить включить счетчик
  8. Повторите для всех желаемых счетчиков.
  9. Нажмите Закрыто когда закончите

5.3 Настройка интервалов выборки

Интервал выборки определяет частоту сбора данных Performance Monitor. Настройте интервалы в соответствии с вашими потребностями в мониторинге:

  1. В свойствах журнала счетчика найдите Образец данных каждый
  2. Установите интервал (по умолчанию 15 секунд)
  3. Для базового мониторинга используйте 1-минутные интервалы для ежедневного сбора данных.
  4. Для устранения неполадок используйте короткие импульсы длительностью 15–30 секунд.
  5. Нажмите OK применять

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

5.4 Настройка файлов журнала

Правильная конфигурация файла журнала обеспечивает эффективное хранение и доступность данных:

  1. Нажмите Файлы журналов вкладка в свойствах журнала счетчика
  2. Изменить тип файла журнала на Текстовый файл (с разделителями-запятыми) для легкого импорта Excel
  3. Нажмите Настроить
  4. Укажите путь к файлу в выделенном месте (например, общая папка PerformanceLogs)
  5. Нажмите OK подтвердить

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

5.5 Настройка учетных данных

Настройте соответствующие учетные данные, чтобы Performance Monitor мог получить доступ к удаленному SQL Server экземпляры:

  1. В свойствах журнала счетчика найдите Беги как
  2. Введите имя пользователя вашего домена в формате: ДОМЕН\имя пользователя
  3. Нажмите Задать пароль
  4. Введите и подтвердите свой пароль
  5. Нажмите OK сохранить

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

6. Анализ данных монитора производительности

6.1 Просмотр файлов журнала в Performance Monitor

Performance Monitor может отображать исторические данные из сохраненных файлов журналов:

  1. Открыть монитор производительности
  2. На левой панели нажмите Инструменты мониторинга -> Performance Monitor.
  3. Щелкните правой кнопкой мыши в любом месте области графика.
  4. Выберите Основные свойства
    Откройте свойства в PerfMon, щелкнув правой кнопкой мыши в любом месте области графика.
  5. Нажмите Источник таб
  6. Выберите Файлы журналов переключатель
  7. Нажмите Добавить
  8. Перейдите к файлу журнала (.blg или .csv)
  9. Выберите файл и нажмите Открыто
    Установите файл журнала в качестве источника графики в PerfMon.
  10. Использовать Временной диапазон ползунок для выбора периода, который вы хотите проанализировать
  11. Нажмите OK чтобы закрыть диалоговое окно «Свойства»
  12. Нажмите на зеленый значок «плюс», чтобы добавить счетчики из файла журнала.
    Нажмите на зеленый значок «плюс», чтобы добавить счетчики из файла журнала в PerfMon.
  13. Выберите нужные счетчики для отображения
    Добавьте нужные счетчики на график в PerfMon.
  14. Нажмите OK

Теперь на графике будут отображаться исторические данные из файла журнала. Используйте ползунок «Временной диапазон» в разделе «Свойства», чтобы сузить диапазон для детального анализа.

6.2 Экспорт данных в Excel

Excel предоставляет мощные возможности анализа данных счетчиков производительности:

  1. Откройте Performance Monitor с загруженным файлом журнала.
  2. Щелкните правой кнопкой мыши в любом месте области графика.
  3. Выберите Сохранить данные как
  4. Выберите место для файла
  5. Выберите Текстовый файл (с разделителями-запятыми) (.csv) из раскрывающегося списка
  6. Нажмите Сохранено
  7. Откройте CSV-файл в Excel

Экспортируйте данные в файл в PerfMon.

Отформатируйте экспортированные данные для лучшего анализа:

  1. Удалить полупустую строку 2 и очистить ячейку A1
  2. Отформатировать столбец A как «Дата/Время»
  3. Форматировать числовые столбцы с нулевыми знаками после запятой и разделителем тысяч
  4. Найти и заменить имена серверов в заголовках (например, заменить «\\SERVERNAME» на пробел)
  5. Очистите имена объектов в заголовках (например, «Память», «Физический диск», «Процессор»).
  6. Уменьшите размер шрифта заголовка до 8 пунктов для лучшей видимости.

6.3 Интерпретация значений счетчика

6.3.1 Анализ счетчика памяти

При анализе счетчиков памяти обратите внимание на следующие индикаторы:

  • Доступно МБ: Должно постоянно оставаться выше 4096 МБ
  • Ожидаемая продолжительность жизни страницы: Значения выше 300 секунд указывают на здоровую память. Более низкие значения указывают на нагрузку на память.
  • Коэффициент попадания в буферный кэш: Должно быть равно или превышать 99%. Более низкие значения указывают на чрезмерное количество операций чтения с диска.
  • Ожидаются гранты памяти: Всегда должно быть 0. Любое положительное значение указывает на нехватку памяти.tarвождение

6.3.2 Анализ счетчика ЦП

Показатели производительности ЦП включают в себя:

  • % загруженности процессора: Длительное использование более 75% указывает на проблемы с производительностью. Резкие скачки до 100% являются нормой, но не должны сохраняться.
  • Длина очереди процессора: Значения выше 1 указывают на загрузку процессора. Проверьте диспетчер задач, чтобы определить, какие процессы потребляют ресурсы процессора.
  • % Привилегированного времени: Значение должно оставаться в пределах 5–10%. Значения выше 25% указывают на избыточное количество операций ввода-вывода.

6.3.3 Анализ счетчика диска

Пороговые значения производительности диска:

  • Среднее время чтения и записи на диске (сек): Должно быть ниже 10–20 мс. Более высокие значения указывают на медленную работу дисковых подсистем.
  • Длина очереди диска: Значения, постоянно превышающие 2 (или 2 на диск в RAID), указывают на узкие места ввода-вывода.
  • % Время на диске: Устойчивые значения выше 85% указывают на насыщение диска.

6.4 Использование формул и статистики

Добавьте статистические формулы в Excel для быстрого анализа:

  1. Вставьте 7 пустых строк в верхнюю часть таблицы.
  2. Добавьте метки в столбец A: Среднее, Медиана, Мин, Макс, Стандартное отклонение.
  3. В ячейке B2 введите: =СРЗНАЧ(B9:B100) (измените B100 в соответствии с последней строкой данных)
  4. В ячейке B3 введите: =МЕДИАНА(B9:B100)
  5. В ячейке B4 введите: =MIN(B9:B100)
  6. В ячейке B5 введите: =МАКС(B9:B100)
  7. В ячейке B6 введите: =СТАНДОТКЛОН(B9:B100)
  8. Копировать формулы по всем столбцам счетчика
  9. Выберите ячейку B9 и нажмите Alt+W+F+Enter, чтобы закрепить области.

Эти статистические данные помогают выявить тенденции, выбросы и нормальные рабочие диапазоны для каждого счетчика.

7. Инструмент анализа производительности журналов (PAL)

7.1 Введение в PAL

Анализ производительности для журналов (PAL) — это бесплатный инструмент, разработанный Клинтом Хаффманом, который анализирует журналы Performance Monitor и генерирует HTML-отчёты с пороговым анализом. PAL сравнивает данные о производительности с известными пороговыми значениями и предоставляет подробные рекомендации. SQL Server оптимизация производительности.

Загрузите PAL из репозитория GitHub: https://github.com/clinthuffman/PAL Ссылка

7.2 Настройка PAL

Установите PAL, выполнив следующие шаги:

  1. Загрузите установочный файл PAL с GitHub
  2. Запустите инсталлятор
  3. Нажмите Следующая на экране приветствия
  4. Проверьте и примите каталог установки.
  5. Нажмите Следующая продолжать
  6. Нажмите Установите начать установку
  7. Дождитесь завершения установки.
  8. Нажмите Завершить

7.3 Обработка файлов журнала с помощью PAL

Проанализируйте журналы Performance Monitor с помощью PAL:

  1. Запуск PAL с Starменю t или каталог установки
  2. Нажмите Журнал счетчика таб
  3. Нажмите Вставить чтобы выбрать файл .blg
  4. Перейдите к файлу журнала Performance Monitor.
  5. Нажмите Открыто
  6. Нажмите Пороговый файл таб
  7. Выберите файл порогового значения из раскрывающегося списка (например, «SQL Server 2016” )
  8. Нажмите вопросы таб
  9. Ответьте на вопросы о конфигурации вашей системы
  10. Укажите, есть ли у вас SQL Server это OLTP или хранилище данных
  11. Введите общий объем доступной оперативной памяти
  12. Нажмите Параметры вывода таб
  13. Выберите выходной каталог для HTML-отчета
  14. Проверка HTML Выходной формат
  15. Нажмите Выполнить таб
  16. Проверьте свой выбор
  17. Проверка Start исполнение сейчас
  18. Нажмите Завершить

7.4 Анализ отчетов PAL

После завершения анализа PAL генерирует HTML-отчет, содержащий:

  • Краткое изложение проблем производительности
  • Подробный анализ счетчиков с диаграммами
  • Нарушения порога выделены цветом
  • Конкретные рекомендации по каждому вопросу
  • Исторические тенденции и закономерности

В отчёте используется цветовая кодировка для обозначения серьёзности: красный — критические проблемы, жёлтый — предупреждения, а зелёный — показатели, отвечающие норме. Ознакомьтесь с каждым разделом, чтобы выявить узкие места в производительности и следовать рекомендациям PAL по оптимизации.

8. Альтернатива SQL Server Инструменты мониторинга

Встроенный 8.1 SQL Server Инструменты

8.1.1 SQL Server Мониторинг системы

SQL Server Мониторинг системы отображает информацию в режиме реального времени о SQL Server процессы и производительность:

  1. Открыто SQL Server Management Studio (SSMS) и подключитесь к экземпляру вашего сервера
  2. Щелкните правой кнопкой мыши имя сервера в обозревателе объектов.
  3. Выберите Мониторинг системы
    Start Монитор активности в SQL Server Студия управления.

Монитор активности отображает процессы, время ожидания ресурсов, операции ввода-вывода файлов данных и последние ресурсоёмкие запросы. Он предоставляет быструю информацию о текущей активности базы данных, но не хранит исторические данные.

Монитор активности в SQL Server

8.1.2 SQL Server Панель управления производительностью

SQL Server Management Studio включает в себя встроенные отчеты об эффективности:

  1. In SQL Server Management Studio (SSMS), щелкните правой кнопкой мыши SQL Server экземпляр в обозревателе объектов
  2. Выберите Согласно отчетам -> Стандартные отчеты
  3. Выберите из доступных отчетов, таких как Панель управления производительностью
    Открыть панель управления производительностью в SQL Server Студия управления.

Панель управления производительностью обеспечивает визуальное представление SQL Server Производительность экземпляра, включая загрузку ЦП системы, текущие запросы на ожидание и метрики производительности. Доступ к ним осуществляется через меню «Стандартные отчёты».

Панель управления производительностью в SQL Server Студия управления

8.1.3 SQL Server Profiler

SQL Server Profiler захватывает и анализирует SQL Server такие события, как выполнение запросов, транзакционные операции и действия по входу в систему.

К start SQL Server Профайлер:

  1. In SQL Server Студия управления, нажмите Инструменты -> SQL Server Profiler
    Start SQL Server Профайлер в SQL Server Студия управления.

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

SQL Server Profiler

8.1.4 Расширенные события

Расширенные события представляет собой легкую систему мониторинга производительности, встроенную в SQL Server. Он заменяет SQL Server Профилировщик с более высокой производительностью и меньшими накладными расходами.

Основные функции включают в себя:

  • Детальный мониторинг конкретных событий
  • Минимальное влияние на производительность
  • Настраиваемые сеансы мероприятий
  • Интеграция с SSMS и другими инструментами
  • Поддержка сложной фильтрации и агрегации

Создание расширенных сеансов событий через SSMS:

  1. In Обозреватель объектов, расширьте свой сервер и перейдите на Управление -> Расширенные события -> Сеансы
  2. Щелкните правой кнопкой мыши по значку Сессии , а затем выбрать Мастер создания нового сеанса
    Starта новая сессия расширенных мероприятий в SQL Server Студия управления.
  3. Следуйте инструкциям, чтобыtarта новая сессия.

8.1.5 Динамические представления управления (DMV)

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

  • sys.dm_exec_query_stats: Статистика производительности запросов
  • sys.dm_os_wait_stats: Типы ожидания, влияющие на производительность сервера
  • sys.dm_os_performance_counters: SQL Server данные счетчика производительности
  • sys.dm_exec_requests: В настоящее время выполняются запросы
  • sys.dm_exec_sessions: Активные пользовательские сеансы

Запросите эти представления, используя T-SQL, чтобы получить доступ к данным о производительности в реальном времени и историческим показателям.

Основное использование

-- See all active connections
SELECT * FROM sys.dm_exec_connections;

-- View current sessions
SELECT * FROM sys.dm_exec_sessions;

-- Check database file stats
SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL);

8.2 Решения сторонних поставщиков для мониторинга

Редгейт SQL-монитор

Redgate SQL Monitor специализируется на мониторинге SQL Server и среды баз данных Azure SQL. Он обеспечивает мониторинг всего предприятия, настраиваемые оповещения и панели мониторинга, подробные отчеты и интеграцию с другими инструментами Redgate.

Редгейт SQL Server Монитор

SolarWinds SQL Server Инструмент мониторинга

Солнечные Ветры SQL Server Инструмент мониторинга, также известный как SQL Sentry, предназначен для диагностики, решения и предотвращения серьезных проблем с производительностью SQL Server.

SolarWinds SQL Server Инструмент мониторинга

ИДЕРА SQL Server Инструмент мониторинга производительности

Диагностика SQL IDERAostic Manager — мощный SQL Server инструмент мониторинга производительности, предназначенный для помощи в упреждающем мониторинге производительности, диагностикеostмикросхемы и настройка.

ИДЕРА SQL Server Инструмент мониторинга производительности

SQL-мониторинг Application Manager

Менеджер приложений предлагает Microsoft SQL Server Инструмент мониторинга, предоставляющий полезные ИТ-решения. Он предназначен для контроля производительности баз данных SQL, одновременно выявляя ошибки и устраняя проблемы, которые могут привести к остановке работы организации.

SQL-мониторинг Application Manager

8.3 Инструменты мониторинга с открытым исходным кодом

DBA Dash

DBA Dash — это бесплатный инструмент мониторинга с открытым исходным кодом, который предоставляет информацию о SQL Server Состояние, производительность и активность. Этот инструмент особенно полезен для небольших и средних сред и включает ежедневные проверки администратора баз данных, мониторинг производительности и отслеживание конфигурации.

SQLWATCH

SQLWATCH предлагает децентрализованную систему, работающую практически в режиме реального времени SQL Server Мониторинг с 5-секундной детализацией для отслеживания пиков рабочей нагрузки. Инструмент поддерживает Grafana для создания панелей мониторинга в реальном времени и Power BI для глубокого анализа. Инструмент предоставляет широкие возможности настройки, не требует обслуживания и неограниченную масштабируемость.

Наблюдатель

Разработанный компанией Stack Exchange, Opserver отслеживает несколько систем, включая SQL Server, Redis и Elasticsearch. Он предоставляет представление статистики по всем серверам, включая ЦП, память, сеть и оборудование, по всей вашей инфраструктуре.

sp_WhoIsActive

sp_WhoIsActive — это комплексная хранимая процедура мониторинга активности, созданная Адамом Махаником. Она работает со всеми SQL Server версии с 2005 года до текущих выпусков и широко используется SQL Server Администраторы баз данных для мониторинга активности в реальном времени.

Чтобы использовать sp_WhoIsActive, загрузите ее с сайта http://whoisactive.com/, установите в своей базе данных и выполните:

EXEC sp_WhoIsActive

Процедура показывает текущие выполняемые запросы, информацию об ожидании, сведения о блокировках и потребление ресурсов.

9. Лучшие практики для SQL Server Performance Monitor

9.1 Установление базовых показателей эффективности

Базовые показатели производительности устанавливают нормальные рабочие параметры для вашего SQL Server Окружающая среда. Без базовых показателей невозможно определить, указывают ли текущие показатели на проблемы или отражают типичное поведение.

Создайте базовые показатели путем:

  1. Сбор данных о производительности в ходе обычной работы в течение как минимум одной недели
  2. Сбор показателей как в часы пик, так и вне часов пик
  3. Документирование типичных значений ключевых счетчиков
  4. Регистрация сезонных колебаний, если применимоcable
  5. Хранение исходных данных для сравнения с будущими показателями

Обновляйте базовые показатели ежеквартально или после существенных изменений инфраструктуры, обновлений приложений или модификаций базы данных.

9.2 Установка соответствующих пороговых значений оповещений

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

  • Ожидание предоставления памяти > 0 указывает на нехватку памяти
  • Длина очереди процессора > 2 на ядро ​​предполагает узкое место ЦП
  • Время чтения или записи на диске > 20 мс указывает на медленный ввод-вывод.
  • Заблокированные процессы > 5 сигнализируют о проблемах с конкуренцией
  • Ожидаемая продолжительность жизни страницы < 300 секунд указывает на нехватку памяти.

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

9.3 Регулярный просмотр и анализ данных

Запланируйте регулярные обзоры эффективности для выявления тенденций и возникающих проблем:

  • Ежедневно: просматривайте общие показатели и последние оповещения.
  • Еженедельно: проводить углубленный анализ тенденций эффективности.
  • Ежемесячно: создание подробных отчетов и сравнение с базовыми показателями
  • Ежеквартально: проверка планирования мощностей и долгосрочных тенденций.

Документируйте результаты и отслеживайте улучшения производительности с течением времени.

9.4 Балансировка накладных расходов на мониторинг

Мониторинг сам по себе потребляет ресурсы, поэтому сбалансируйте сбор данных с влиянием на производительность:

  • Используйте интервалы 30–60 секунд для непрерывного мониторинга.
  • Используйте 15-секундные интервалы только для активного устранения неполадок.
  • Ограничьте сбор данных. Установите продолжительность, чтобы избежать сбора избыточных данных.
  • Хранить журналы на отдельных дисках от файлов базы данных
  • Архивируйте старые данные о производительности, чтобы поддерживать управляемые размеры файлов.

При правильной настройке Performance Monitor добавляет минимальные накладные расходы, обычно менее 2% системных ресурсов.

9.5 Долгосрочное хранение данных

Сохраняйте данные о производительности для осмысленного анализа тенденций и планирования мощностей:

  • Сохраняйте данные об эффективности как минимум за 1-2 года
  • Архивируйте данные в отдельное хранилище через 3–6 месяцев.
  • Сжимайте старые файлы журналов для экономии места
  • Документируйте любые существенные события или изменения, которые влияют на производительность.

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

9.6 Интеграция с практиками DevOps

Включите мониторинг производительности базы данных в конвейеры CI/CD:

  • Включить показатели производительности базы данных в проверку развертывания
  • Автоматизируйте тестирование производительности новых выпусков
  • Убедитесь, что изменения кода не оказывают негативного влияния на производительность.
  • Создавайте тесты производительности для каждого выпуска
  • Интеграция оповещений мониторинга с системами управления инцидентами

10. Устранение распространенных проблем с производительностью

10.1 Выявление узких мест ЦП

Узкие места ЦП проявляются в медленном времени ответа на запросы и высокой загрузке процессора. Для диагностики проблем с ЦП выполните следующие действия:

  1. Проверьте счётчик длины очереди процессора. Значения выше 2 на ядро ​​указывают на нагрузку на процессор.
  2. Проверьте процент загруженности процессора. Устойчивые значения выше 75% указывают на узкое место в процессоре.
  3. Удаленный рабочий стол к SQL Server
  4. Откройте диспетчер задач (Ctrl+Shift+Esc)
  5. Нажмите Процессы таб
  6. Проверка Показать процессы от всех пользователей
  7. Нажмите ЦП заголовок столбца для сортировки по использованию ЦП
  8. Определить, какие процессы потребляют ресурсы ЦП

Если нет-SQL Server Приложения потребляют много ресурсов процессора, удалите их с сервера базы данных. Если sqlservr.exe потребляет много ресурсов процессора, проверьте следующими способами:

  • Проверьте количество компиляций SQL/сек и количество повторных компиляций SQL/сек. Значения выше 10% от количества пакетных запросов/сек указывают на чрезмерную компиляцию.
  • Запрос sys.dm_exec_query_stats для выявления запросов, интенсивно использующих процессор
  • Проверьте планы выполнения на предмет отсутствующих индексов или неэффективных операций.
  • Рассмотрите возможность добавления индексов для сокращения количества сканирований таблиц.

10.2 Диагностика проблем с памятью

Проблемы с памятью существенно влияют SQL Server Производительность. Диагностируйте проблемы с памятью, используя следующие показатели:

Доступные объемы памяти

Если количество доступных МБ постоянно падает ниже 100 МБ, операционная система сталкивается с проблемой нехватки памяти.tarция. Windows может вывести страницу SQL Server памяти на диск, что приводит к снижению производительности.

Низкая ожидаемая продолжительность жизни страницы

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

Низкий коэффициент попадания в кэш-буфер

Коэффициент попадания в кэш-буфер ниже 99% означает, что SQL Server Часто считывает данные с диска, а не с памяти. Это происходит, когда буферный пул слишком мал или SQL Server все еще разогревается послеtart.

Ожидаются гранты памяти

Любое значение параметра «Ожидание предоставления памяти» выше 0 указывает на то, что запросы ожидают предоставления памяти. Это свидетельствует о критической нехватке памяти, требующей немедленного внимания.

Чтобы решить проблемы с памятью:

  1. Настроить SQL Server максимальный объем памяти, чтобы оставить достаточный объем оперативной памяти для операционной системы (обычно 4–8 ГБ в зависимости от размера сервера)
  2. Включить разрешение «Блокировка страниц в памяти» для SQL Server учетная запись службы
  3. Добавьте больше физической оперативной памяти на сервер, если проблема с памятью сохраняется.
  4. Выявлять и оптимизировать запросы, требующие большого объема памяти

10.3 Решение проблем дискового ввода-вывода

Дисковый ввод-вывод часто становится основным узким местом производительности в системах баз данных. Диагностируйте проблемы с дисками, используя следующие методы:

Большая длина очереди на диске

Если длина очереди на диск постоянно превышает 2 (или 2 на диск в RAID), это означает, что дисковая подсистема не справляется с запросами ввода-вывода. Это приводит к накоплению ожидающих операций.

Чрезмерная задержка диска

Значения среднего времени чтения с диска (сек.) и среднего времени записи с диска (сек.) выше 10–20 мс указывают на медленную реакцию диска. Диски журнала транзакций требуют особенно высокой производительности, в идеале менее 5 мс для записи.

Высокий % времени диска

Устойчивый процент дискового времени выше 85% указывает на насыщение диска. Диск тратит мost часть своего времени обрабатывает запросы ввода-вывода, при этом остается мало свободной мощности.

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

Чтобы устранить реальные проблемы с вводом-выводом на диске:

  • Переход на более быстрые диски (SSD вместо HDD)
  • Реализуйте конфигурации RAID для повышения производительности
  • Разделите файлы базы данных, журналы транзакций и базу данных tempdb на разные физические диски.
  • Добавьте больше памяти, чтобы уменьшить количество чтений с диска
  • Оптимизируйте индексы, чтобы сократить ненужные операции ввода-вывода
  • Просматривайте и оптимизируйте неэффективные запросы

10.4 Решение проблем блокировок и взаимоблокировок

Блокировка происходит, когда один сеанс блокирует другие сеансы, препятствуя их продолжению. Следите за этими счётчиками, чтобы выявить проблемы, вызывающие блокировку:

  • Заблокированные процессы: В идеале должно быть 0
  • Ожидания блокировки/сек: Количество запросов на блокировку, требующих ожидания
  • Среднее время ожидания: Средняя продолжительность ожидания блокировки

Чтобы расследовать блокировку:

  1. Откройте монитор активности в SSMS
  2. Развернуть Процессы .
  3. Ищите процессы с ненулевым значением Заблокировано ценности
  4. Определите идентификатор блокирующего сеанса
  5. Просмотрите запросы, вызывающие блокировку

Для более детального анализа блокировок используйте хранимую процедуру sp_WhoIsActive. Чрезмерное количество записей wait_info часто указывает на конфликты или проблемы с блокировкой базы данных tempdb.

Чтобы уменьшить блокировку:

  • Минимизировать продолжительность транзакции
  • Используйте соответствующие уровни изоляции
  • Добавьте индексы для сокращения длительности блокировки
  • Рассмотрите изоляцию READ_COMMITTED_SNAPSHOT
  • Просмотр и оптимизация длительных запросов

10.5 Проблемы с производительностью запросов

Выявление ресурсоёмких запросов крайне важно для мониторинга производительности SQL. Используйте следующие методы для поиска проблемных запросов:

Использование монитора активности

  1. В SSMS щелкните правой кнопкой мыши имя сервера.
  2. Выберите Мониторинг системы
  3. Расширьте Недавние дорогие запросы
  4. Просматривайте запросы с высокой загрузкой ЦП, длительностью или логическими чтениями.

Использование DMV

Запросите sys.dm_exec_query_stats для выявления ресурсоемких запросов:

SELECT TOP 50
    total_worker_time/execution_count AS avg_cpu_time,
    total_logical_reads/execution_count AS avg_logical_reads,
    execution_count,
    SUBSTRING(qt.text, (qs.statement_start_offset/2)+1,
        ((CASE qs.statement_end_offset
            WHEN -1 THEN DATALENGTH(qt.text)
            ELSE qs.statement_end_offset
        END - qs.statement_start_offset)/2) + 1) AS query_text
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY total_worker_time DESC

Анализ планов выполнения

  1. В SSMS откройте новое окно запроса
  2. Нажмите Показать предполагаемый план выполнения (Ctrl+L) или Включить реальный план выполнения (Ctrl + M)
  3. Выполните ваш запрос
  4. Пересмотрите план выполнения дорогостоящих операций
  5. Ищите сканирование таблиц, сканирование индексов или высоко-cost операции

Оптимизируйте запросы путем:

  • Добавление соответствующих индексов
  • Переписывание запросов для избежания дорогостоящих операций
  • Обновление статистики
  • Использование определенных имен столбцов вместо SELECT *
  • Избегание ненужных предложений DISTINCT или ORDER BY

10.6 Обнаружение и исправление поврежденной базы данных

Повреждение базы данных может привести к снижению производительности, потере данных и сбоям в работе системы. Быстрое обнаружение и устранение повреждений критически важно для поддержания работоспособности базы данных.

Индикаторы повреждения базы данных

Обратите внимание на следующие признаки потенциальной коррупции:

  • Сообщения об ошибках в SQL Server журнал ошибок (ошибка 823, 824 или 825)
  • Неожиданные ошибки приложения при доступе к определенным таблицам
  • Низкая производительность ранее быстрых запросов
  • SQL Server сбои или неожиданные решенияtarts
  • Подозрительные страницы, появляющиеся в таблице msdb.dbo.suspect_pages

Использование DBCC CHECKDB для обнаружения

DBCC CHECKDB — основной инструмент для обнаружения повреждений базы данных. Регулярно запускайте его, чтобы выявлять проблемы на ранней стадии.

Мониторинг подозрительных страниц

SQL Server автоматически записывает подозрительные страницы в базу данных msdb:

SELECT 
    database_id,
    file_id,
    page_id,
    event_type,
    error_count,
    last_update_date
FROM msdb.dbo.suspect_pages
WHERE event_type IN (1,2,3)

Любые возвращенные строки указывают на проблемы с коррупцией, требующие немедленного внимания.

Стратегии предотвращения коррупции

  • Включить проверку страницы с помощью параметра CHECKSUM
  • Регулярно создавайте резервные копии базы данных
  • Используйте надежное оборудование с коррекцией ошибок
  • Мониторинг состояния диска с помощью инструментов производителя
  • Запланируйте регулярные запуски DBCC CHECKDB
  • Сохранить SQL Server обновлено с последними патчами

Варианты восстановления и ремонта

Если обнаружены повреждения, вы можете попробовать встроенный инструмент DBCC CHECKDB Чтобы исправить их. Если не получится, используйте сторонние инструменты, такие как DataNumen SQL Recovery который может справиться с серьезными повреждениями.

11. Расширенные методы мониторинга

11.1 Мониторинг хранилища запросов

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

Включение хранилища запросов

  1. В обозревателе объектов SSMS щелкните правой кнопкой мыши базу данных.
  2. Выберите Основные свойства
  3. Нажмите Магазин запросов страница
  4. In Режим работы (запрашивается), наведите на Чтение и запись
  5. При необходимости настройте дополнительные параметры.
  6. Нажмите OK

Мониторинг производительности запросов

Доступ к отчетам хранилища запросов через обозреватель объектов:

  1. Разверните базу данных в обозревателе объектов
  2. Расширьте Магазин запросов
  3. Выберите из доступных отчетов:
    • Регрессивные запросы
    • Общее потребление ресурсов
    • Наиболее ресурсоемкие запросы
    • Запросы с принудительными планами
    • Отслеживаемые запросы

Обнаружение регрессии плана

Хранилище запросов автоматически определяет изменения планов выполнения запросов и снижение производительности. Ознакомьтесь с отчётом «Регрессивные запросы», чтобы определить запросы, затронутые изменениями плана.

Принудительное управление планом

Когда Query Store определяет лучший план выполнения, принудительно SQL Server использовать это:

  1. Откройте запрос в хранилище запросов.
  2. Щелкните правой кнопкой мыши нужный план.
  3. Выберите План Силы

Это немедленно повышает производительность без необходимости внесения изменений в код.

11.2 Мониторинг обслуживания индекса

Фрагментация индексов со временем снижает производительность запросов. Регулярно контролируйте и обслуживайте индексы для обеспечения оптимальной производительности.

Проверка фрагментации

Используйте этот запрос для проверки фрагментации индекса:

SELECT 
    OBJECT_NAME(i.object_id) AS table_name,
    i.name AS index_name,
    ps.avg_fragmentation_in_percent,
    ps.page_count
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id 
    AND ps.index_id = i.index_id
WHERE ps.avg_fragmentation_in_percent > 10
    AND ps.page_count > 1000
ORDER BY ps.avg_fragmentation_in_percent DESC

Выполняйте этот запрос в непиковые часы, так как он может быть ресурсоемким.

Анализ плотности страниц

Плотность страниц показывает, насколько заполнены страницы индекса. Низкая плотность приводит к непроизводительному использованию пространства и снижению производительности:

SELECT 
    OBJECT_NAME(i.object_id) AS table_name,
    i.name AS index_name,
    ps.avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id 
    AND ps.index_id = i.index_id
WHERE ps.avg_page_space_used_in_percent < 75

Решения о реорганизации и перестройке

Выберите операции по обслуживанию индекса на основе уровней фрагментации:

  • Фрагментация 10–30 %: используйте ALTER INDEX REORGANIZE
  • Фрагментация > 30%: используйте ALTER INDEX REBUILD
  • Фрагментация < 10%: никаких действий не требуется

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

11.3 Обновления статистики базы данных

Помощь по статистике базы данных SQL ServerОптимизатор запросов создает эффективные планы выполнения. Устаревшая статистика приводит к снижению производительности запросов.

Автоматическое восстановление статистики

Включить автоматическое обновление статистики:

ALTER DATABASE DatabaseName SET AUTO_UPDATE_STATISTICS ON
ALTER DATABASE DatabaseName SET AUTO_CREATE_STATISTICS ON

Мониторинг статистики здравоохранения

Проверьте, когда статистика обновлялась в последний раз:

SELECT 
    OBJECT_NAME(s.object_id) AS TableName,
    s.name AS StatisticsName,
    STATS_DATE(s.object_id, s.stats_id) AS LastUpdated,
    sp.rows,
    sp.modification_counter
FROM sys.stats s
CROSS APPLY sys.dm_db_stats_properties(s.object_id, s.stats_id) sp
WHERE STATS_DATE(s.object_id, s.stats_id) < DATEADD(DAY, -7, GETDATE())
ORDER BY LastUpdated

Обновляйте статистику вручную при необходимости:

UPDATE STATISTICS TableName WITH FULLSCAN

11.4 Сбор пользовательских данных о производительности

Создавайте индивидуальные решения для мониторинга производительности, отправляя прямые запросы к sys.dm_os_performance_counters и сохраняя результаты в таблицах.

Создание пользовательских скриптов сбора

Создайте хранимую процедуру для сбора данных счетчиков производительности:

CREATE PROCEDURE dbo.CollectPerformanceCounters
AS
BEGIN
    INSERT INTO dbo.PerformanceHistory (
        SampleTime,
        CounterName,
        CounterValue
    )
    SELECT 
        GETDATE(),
        counter_name,
        cntr_value
    FROM sys.dm_os_performance_counters
    WHERE counter_name IN (
        'Page life expectancy',
        'Batch Requests/sec',
        'Buffer cache hit ratio'
    )
END

Использование sys.dm_os_performance_counters

Запрос счетчиков производительности напрямую:

SELECT 
    object_name,
    counter_name,
    instance_name,
    cntr_value,
    cntr_type
FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Buffer Manager%'
ORDER BY counter_name

Хранение исторических данных

Создайте таблицу для хранения показателей производительности с течением времени:

CREATE TABLE dbo.PerformanceHistory (
    ID INT IDENTITY PRIMARY KEY,
    SampleTime DATETIME2 NOT NULL,
    PageLifeExpectancy BIGINT,
    BatchRequestsPerSec DECIMAL(18,4),
    BufferCacheHitRatio DECIMAL(5,2)
)

CREATE CLUSTERED COLUMNSTORE INDEX CCI_PerformanceHistory 
ON dbo.PerformanceHistory

Методы хранения сводных данных

Храните данные в формате сводных данных: одна строка на каждый момент выборки и один столбец на каждый счётчик. Это экономит место на диске и повышает производительность запросов по сравнению с хранением одной строки на каждый счётчик на каждую выборку.

11.5 Мониторинг нескольких серверов

Для сред с несколькими SQL Server случаях реализуйте централизованный мониторинг.

Централизованный подход к мониторингу

  • Создайте специальную базу данных мониторинга на отдельном сервере
  • Собирать данные со всех серверов в центральном репозитории
  • Используйте SQL Server Задания агентов для запуска скриптов сбора
  • Реализовать сбор данных счетчиков производительности, доступных через сеть

Удаленный мониторинг сервера

Настройте Performance Monitor для сбора данных с удалённых серверов, указав имена серверов при добавлении счётчиков. Убедитесь, что правила брандмауэра разрешают трафик Performance Monitor.

Кросс-серверная отчетность

Создавайте отчеты, сравнивающие производительность нескольких серверов, чтобы выявлять выбросы и дисбалансы емкости.

12. мониторинг SQL Server в облачных средах

12.1 Мониторинг базы данных Azure SQL

База данных SQL Azure предоставляет встроенные возможности мониторинга, которые отличаются от локальных SQL Server.

Интеграция с Azure Monitor

Azure Monitor автоматически собирает метрики из базы данных Azure SQL, включая:

  • Использование DTU или vCore
  • Использование памяти
  • Статистика подключений
  • Взаимоблокировки и тайм-ауты

Доступ к этим метрикам осуществляется через портал Azure или API Azure Monitor.

Встроенные функции мониторинга

База данных Azure SQL включает в себя:

  • Рекомендации по автоматической настройке
  • Анализ производительности запросов
  • Интеллектуальные данные для обнаружения аномалий
  • Встроенные оповещения и диагностикаostICS

Анализ производительности запросов

Эта функция обеспечивает визуализацию наиболее ресурсоёмких запросов, анализ длительности выполнения запросов и историческую динамику производительности. Доступ к ней осуществляется через портал Azure в разделе ресурса вашей базы данных SQL.

12.2 Облачные инструменты мониторинга

Облачные платформы предлагают собственные решения для мониторинга, оптимизированные для их сред:

  • Azure Monitor и Application Insights для базы данных Azure SQL
  • AWS CloudWatch для RDS SQL Server
  • Мониторинг Google Cloud для облака SQL Server

Эти инструменты легко интегрируются с облачной инфраструктурой и обеспечивают единый мониторинг всех облачных ресурсов.

Гибридный мониторинг окружающей среды

Для гибридных развертываний, охватывающих локальную и облачную среду, используйте инструменты, поддерживающие обе среды, такие как Redgate SQL Monitor, SolarWinds DPA, или специальные решения, использующие централизованный сбор данных.

12.3 Различия в производительности в облаке

облако SQL Server Окружающая среда имеет уникальные характеристики:

Модели распределения ресурсов

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

Соображения по масштабированию

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

13. Автоматизация мониторинга производительности

13.1 SQL Server Работа агента

Автоматизируйте сбор данных с помощью SQL Server Задания агентов для постоянного мониторинга без ручного вмешательства.

Запланированный сбор данных

  1. В SSMS разверните SQL Server Агент
  2. Щелкните правой кнопкой мыши Вакансии и Новая работа
  3. Назовите задание (например, «Сбор показателей эффективности»)
  4. Нажмите Шаги и добавить новый шаг
  5. Установить тип на скрипт Transact-SQL
  6. Введите ваш сценарий сбора данных
  7. Нажмите Расписание и добавить расписание
  8. Настройте частоту (например, каждые 5 минут)
  9. Нажмите OK создать работу

Автоматическая отчетность

Создавайте задания, которые генерируют и отправляют по электронной почте отчеты об эффективности:

  1. Создайте хранимую процедуру, которая генерирует отчеты
  2. Используйте Database Mail для отправки отчетов по электронной почте
  3. Запланируйте запуск задания ежедневно или еженедельно.

13.2 Автоматизация PowerShell

PowerShell предоставляет мощные возможности автоматизации для SQL Server монитор производительности.

Скрипты сбора счетчиков производительности

$counters = @(
    '\Processor(_Total)\% Processor Time',
    '\Memory\Available MBytes',
    '\PhysicalDisk(_Total)\Avg. Disk sec/Read'
)

$data = Get-Counter -Counter $counters -ComputerName 'SQLServer01'
$data.CounterSamples | Export-Csv 'C:\PerfLogs\counters.csv' -Append

Запросы WMI

Используйте WMI для сбора данных о производительности с удаленных серверов:

$cpu = Get-WmiObject Win32_Processor -ComputerName 'SQLServer01'
$memory = Get-WmiObject Win32_OperatingSystem -ComputerName 'SQLServer01'

Write-Host "CPU Usage: $($cpu.LoadPercentage)%"
Write-Host "Available Memory: $([math]::Round($memory.FreePhysicalMemory/1MB,2)) GB"

Автоматизированное оповещение

Создайте скрипты PowerShell, которые проверяют метрики и отправляют оповещения при превышении пороговых значений:

$cpuThreshold = 80
$cpu = (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue

if ($cpu -gt $cpuThreshold) {
    Send-MailMessage -To 'dba@company.com' -Subject 'High CPU Alert' `
        -Body "CPU usage is $cpu%" -SmtpServer 'smtp.company.com'
}

13.3 Создание панелей мониторинга

Визуализируйте данные о производительности с помощью интерактивных панелей управления для более глубокого понимания.

Интеграция с Power BI

  1. Подключите Power BI к таблицам данных о производительности
  2. Создавайте визуализации для ключевых показателей
  3. Добавить слайсеры для выбора временного диапазона и сервера
  4. Публикация панелей мониторинга в службе Power BI
  5. Настройте автоматические расписания обновления

Создание панели мониторинга в реальном времени

Используйте такие инструменты, как Grafana или пользовательские веб-приложения, чтобы создавать панели мониторинга в режиме реального времени, которые напрямую запрашивают DMV и счетчики производительности.

Визуализация исторической тенденции

Постройте линейные диаграммы, показывающие тенденции во времени для:

  • Использование ЦП
  • Использование памяти
  • Дисковый ввод-вывод
  • Производительность запроса
  • Количество подключений

14. Практические примеры и примеры из практики

14.1 Пример: Решение проблемы нехватки памяти

Выявление симптомов

Производство SQL Server В часы пик наблюдалось медленное время отклика запросов. Пользователи жаловались на задержку работы приложений и снижение производительности.

Контранализ

Данные Performance Monitor показали:

  • Ожидаемая продолжительность жизни страницы снизилась до 50 секунд (норма: >300)
  • Коэффициент попадания в кэш-буфер снизился до 85% (норма: >99%).
  • Ожидаемые гранты памяти часто показывали значения 5-10
  • Число чтений с физического диска в секунду значительно возросло

Шаги разрешения

  1. проверено SQL Server настройка максимального объема памяти – обнаружил, что она установлена ​​по умолчанию (неограниченная)
  2. Обзор общей памяти сервера по сравнению с Tarполучить память сервера – показал значительный разрыв
  3. Настроил максимальный объем памяти сервера, оставив 8 ГБ для операционной системы.
  4. Включено разрешение «Блокировка страниц в памяти» для SQL Server учетная запись службы
  5. Добавлено 32 ГБ дополнительной оперативной памяти на сервер.
  6. Мониторинг производительности в течение одной недели – ожидаемая продолжительность жизни страницы стабилизировалась выше 500 секунд.

Результат: Время ответа на запросы улучшилось на 60%, жалобы пользователей прекратились, а производительность приложения вернулась к норме.

14.2 Пример: Оптимизация производительности ЦП

Выявление симптомов

A SQL Server постоянно демонстрировал загрузку ЦП выше 90% в рабочее время, что приводило к снижению производительности приложений и разочарованию пользователей.

Контранализ

Мониторинг эффективности показал:

  • % загруженности процессора в среднем 92% с частыми скачками до 100%
  • Длина очереди процессора постоянно превышает 4 (сервер имел 8 ядер)
  • Компиляций SQL/сек составило 25% от пакетных запросов/сек (должно быть <10%).
  • Количество повторных компиляций SQL/сек составило 15% от количества пакетных запросов/сек.

Шаги разрешения

  1. Использовали DMV для определения наиболее ресурсоемких запросов
  2. Проанализированные планы выполнения для выявленных запросов
  3. Обнаружено несколько сканирований больших таблиц из-за отсутствующих индексов.
  4. Созданы соответствующие индексы на основе рекомендаций плана выполнения.
  5. Выявлен динамический SQL, вызывающий чрезмерную компиляцию
  6. Измененный код приложения для использования параметризованных запросов
  7. Реализовано руководство по планированию для проблемных хранимых процедур.
  8. Обновленная статистика по часто используемым таблицам

Результат: Загрузка ЦП в рабочее время снизилась в среднем до 45%. Время выполнения запросов сократилось на 70%. Значительно улучшилось время отклика приложений.

14.3 Пример: Устранение узких мест дискового ввода-вывода

Выявление симптомов

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

Контранализ

Данные о производительности показали:

  • Среднее время записи на диск (сек.) превысило 45 мс на диске журнала транзакций
  • Длина очереди на диске в среднем составила 12 на диске с файлами данных
  • Процент времени работы диска оставался выше 95% в течение нескольких часов во время пакетных заданий
  • Количество записей страниц в секунду было исключительно высоким

Шаги разрешения

  1. Проверенные настройки памяти были верными — проблем с памятью не обнаружено.
  2. Проанализирована конфигурация диска — обнаружены все файлы на одном наборе шпинделей.
  3. Раздельные журналы транзакций на выделенных быстрых SSD-дисках
  4. База данных tempdb перемещена на отдельные SSD-диски.
  5. Реализовано несколько файлов данных tempdb (по одному на ядро)
  6. Модернизация дисков с файлами данных до конфигурации RAID 10 SSD
  7. Оптимизированные пакетные задания для использования меньших пакетов транзакций
  8. Добавлены индексы для уменьшения ненужного сканирования таблиц во время пакетных операций.

Результат: Среднее время записи на диск (сек.) снизилось до 3 мс. Средняя длина очереди на диск стала менее 1. Время выполнения пакетного задания сократилось на 75%.

15. Будущие тенденции в SQL Server мониторинг

15.1 Интеграция ИИ и машинного обучения

Искусственный интеллект и машинное обучение меняют SQL Server монитор производительности.

Predictive Analytics

Модели машинного обучения прогнозируют будущие потребности в ресурсах на основе исторических данных. Эти системы могут прогнозировать:

  • Когда емкость хранилища будет исчерпана
  • Ожидаемые требования к процессору и памяти в периоды пиковой нагрузки
  • Снижение производительности запросов до того, как это повлияет на пользователей
  • Оптимальные сроки проведения технического обслуживания

Обнаружение аномалий

Инструменты на базе искусственного интеллекта автоматически выявляют необычные закономерности в показателях производительности. Они выявляют аномалии, которые администраторы-люди могут пропустить, и отличают нормальные отклонения от реальных проблем.

Автоматическое исправление

Системы самовосстановления автоматически решают распространённые проблемы при их обнаружении:

  • Restarт услуги, которые остановились
  • Перераспределяйте ресурсы во время пиковой нагрузки
  • Применить исправления для известных проблем
  • Автоматическое восстановление фрагментированных индексов

15.2 Эволюция облачного мониторинга

Мониторинг облака продолжает развиваться, предлагая новые возможности.

Унифицированные платформы мониторинга

Современные платформы обеспечивают обзор через одно стекло:

  • On-помещения SQL Server случаев
  • Облако-hostбазы данных ED
  • Гибридные среды
  • Показатели приложения
  • Показатели инфраструктуры

Тенденции наблюдаемости

Переход от мониторинга к наблюдаемости подчеркивает:

  • Понимание поведения системы по выходным данным
  • Корреляция метрик, журналов и трассировок
  • Глубокое понимание распределенных систем
  • Диагностика проблем в реальном времени

15.3 Самовосстанавливающиеся системы баз данных

Будущее SQL Server версии будут включать больше возможностей автономии.

Автоматическая оптимизация

Базы данных будут постоянно оптимизироваться путем:

  • Автоматическое создание и удаление индексов в зависимости от рабочей нагрузки
  • Настройка параметров конфигурации для оптимальной производительности
  • Прозрачное переписывание неэффективных запросов
  • Динамическое управление распределением ресурсов

Интеллектуальная настройка

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

16. Заключение и основные выводы

16.1 Краткое изложение основных методов мониторинга

Эффективный SQL Server Мониторинг производительности требует комплексного подхода, сочетающего инструменты, методы и передовой опыт.

Обзор критических счетчиков

Сосредоточьте усилия по мониторингу на следующих основных показателях:

  • Память: ожидаемый срок службы страницы, коэффициент попадания в буферный кэш, ожидание предоставления памяти
  • ЦП: % загруженности процессора, длина очереди процессора
  • Диск: среднее время чтения и записи на диске (сек.), длина очереди на диске
  • SQL Server: Пакетных запросов/сек, Компиляций/сек, Пользовательских подключений

Краткое изложение передовой практики

  • Установить базовые показатели во время нормальной работы
  • Установите интеллектуальные пороговые значения оповещений на основе базовых показателей
  • Регулярно проверяйте данные о производительности
  • Баланс накладных расходов на мониторинг с детализацией данных
  • Сохраняйте долгосрочные данные для анализа тенденций
  • Используйте соответствующие инструменты для каждого сценария мониторинга

16.2 Подход к непрерывному совершенствованию

SQL Server Мониторинг производительности — это не разовое мероприятие, а непрерывный процесс, требующий постоянного совершенствования.

Регулярные циклы проверки

  • Ежедневно: проверяйте оповещения и текущую производительность
  • Еженедельно: обзор тенденций и выявление возникающих проблем
  • Ежемесячно: анализ долгосрочных тенденций и потребностей в мощностях
  • Ежеквартально: обновляйте базовые показатели и проверяйте эффективность мониторинга.

Будьте в курсе последних событий с инструментами

Поддерживайте актуальность инструментов и методов мониторинга:

  • Оцените новые функции мониторинга в SQL Server обновления
  • Тестируйте новые сторонние инструменты
  • Посещайте тренинги и конференции
  • Участвовать в SQL Server форумы сообщества
  • Поделитесь знаниями с членами команды

16.3 Следующие шаги

Осуществлять SQL Server систематически контролировать производительность:

План реализации

  1. Неделя 1: Настройте Performance Monitor с необходимыми счетчиками
  2. Неделя 2: Создание наборов сборщиков данных для автоматизированного сбора
  3. Неделя 3: Установить базовые показатели во время нормальной работы
  4. Неделя 4: Настройте оповещения для критических порогов
  5. Месяц 2: Внедрить дополнительные инструменты мониторинга (DMV, расширенные события)
  6. Месяц 3: Разработка пользовательских панелей мониторинга и отчетов
  7. Постоянно: Уточните мониторинг на основе опыта и меняющихся требований

Дополнительные ресурсы

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

17. Часто задаваемые вопросы (FAQ)

17.1 Что такое most важную SQL Server счетчики производительности для мониторинга?

Мost критической SQL Server Счетчики производительности включают в себя:

  • Память: ожидаемая продолжительность жизни страницы (должна быть >300 секунд) и коэффициент попадания в кэш-буфер (должна быть >99%).
  • ЦП: % загруженности процессора (устойчивые значения <75%) и длина очереди процессора (должна быть <2 на ядро)
  • Диск: среднее время чтения и записи на диск (должно быть <10–20 мс) и длина очереди на диск (должна быть <2 на диск)
  • SQL Server: пакетных запросов/сек, компиляций SQL/сек и ожидающих предоставления памяти (должно быть 0)

Эти счетчики предоставляют полную информацию о состоянии системы и помогают быстро выявлять узкие места.

17.2 Как часто следует собирать данные о производительности?

Частота сбора данных зависит от целей вашего мониторинга:

  • Базовый мониторинг: каждую минуту (60 секунд)
  • Активное устранение неполадок: каждые 15–30 секунд в течение коротких периодов времени.
  • Долгосрочный тренд: каждые 5 минут

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

17.3 В чем разница между Performance Monitor и SQL Server Профайлер?

Монитор производительности и SQL Server Профайлеры служат разным целям:

Performance Monitor:

  • Система мониторинга и SQL Server счетчики производительности
  • Отслеживает использование ресурсов (ЦП, памяти, диска)
  • Низкие накладные расходы, подходят для непрерывного мониторинга
  • Предоставляет агрегированные показатели с течением времени

SQL Server Профайлер:

  • Следы индивидуальные SQL Server события и запросы
  • Собирает подробную информацию о выполнении запроса
  • Более высокие накладные расходы, не рекомендуется для постоянного использования.
  • Лучше всего подходит для устранения неполадок, связанных с конкретными запросами
  • Устарело в пользу расширенных событий

Используйте Performance Monitor для общего мониторинга системы и Extended Events (не Profiler) для детального анализа на уровне запросов.

17.4 Может ли влияние монитора производительности SQL Server представление?

При правильной настройке Performance Monitor оказывает минимальное влияние на SQL Server производительность, обычно менее 2% накладных расходов. Однако чрезмерный мониторинг может привести к проблемам:

  • Слишком много счетчиков увеличивают накладные расходы
  • Очень короткие интервалы между выборками (менее 15 секунд) для определения штамма
  • Непрерывный высокочастотный сбор данных создает большие файлы журналов

Чтобы минимизировать воздействие:

  • Контролируйте только необходимые счетчики
  • Используйте соответствующие интервалы взятия проб (60 секунд для обычного мониторинга)
  • Храните журналы на дисках отдельно от файлов базы данных
  • Планируйте ресурсоемкий мониторинг в непиковые часы

17.5 Как долго следует хранить данные мониторинга производительности?

Срок хранения зависит от ваших потребностей в анализе и емкости хранилища:

  • Минимум: 3 месяца на устранение недавних проблем
  • Рекомендуется: 1-2 года для планирования мощностей и анализа тенденций
  • Оптимально: Неограниченно, если позволяет хранилище, поскольку исторические данные со временем становятся более ценными.

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

17.6 Каковы хорошие пороговые значения для ключевых счетчиков производительности?

Рекомендуемые пороговые значения для оповещения:

  • Ожидается выделение памяти: оповещать, когда > 0
  • Ожидаемая продолжительность жизни страницы: оповещение, когда < 300 секунд
  • % загруженности процессора: оповещение, если > 80% в течение 5 минут
  • Длина очереди процессора: оповещение, когда > 2 на ядро
  • Среднее время чтения или записи на диск (сек.): выдавать оповещение, если время > 20 мс
  • Длина очереди диска: оповещение, когда > 2 на диск
  • Заблокированные процессы: оповещать, когда > 5

Скорректируйте эти пороговые значения на основе исходных данных и характеристик конкретной рабочей нагрузки. То, что является нормой для одной среды, может указывать на проблемы в другой.

17.7 Как мне контролировать SQL Server выступление удаленно?

Монитор удаленного управления SQL Server экземпляры, использующие эти методы:

  1. Performance Monitor: Укажите имя удаленного компьютера при добавлении счетчиков
  2. PowerShell: Используйте параметр -ComputerName с Get-Counter
  3. DMV: Подключайтесь к удаленным серверам через SSMS и запрашивайте DMV
  4. Сторонние инструменты: Most инструменты мониторинга поддерживают удаленный мониторинг сервера

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

17.8 Какой бесплатный инструмент лучше всего подходит для SQL Server монитор производительности?

Для мониторинга доступно несколько отличных бесплатных инструментов. SQL Server спектакль:

  • Монитор производительности Windows: Встроенный, комплексный и надежный
  • Монитор активности SSMS: Мониторинг в реальном времени без дополнительной установки
  • Расширенные события: Встроенный облегченный мониторинг событий SQL Server
  • sp_WhoIsActive: Популярная бесплатная хранимая процедура для детального мониторинга активности
  • DBA Dash: Инструмент мониторинга с открытым исходным кодом и комплексными функциями
  • SQLWATCH: Открытый исходный код с возможностями мониторинга в режиме, близком к реальному времени

Для мost организаций, Performance Monitor в сочетании с инструментами SSMS и sp_WhoIsActive обеспечивает превосходные возможности мониторинга без дополнительных затратost.

17.9 Как экспортировать данные PerfMon для анализа?

Экспортируйте данные Performance Monitor, используя следующие методы:

Экспорт в CSV:

  1. Откройте Performance Monitor с загруженным файлом журнала.
  2. Щелкните правой кнопкой мыши по графику и выберите Сохранить данные как
  3. Выбирайте Текстовый файл (с разделителями-запятыми) (.csv)
  4. Выберите местоположение и сохраните
  5. Открыть в Excel для анализа

Используйте команду Relog:

relog input.blg -f csv -o output.csv

Эта утилита командной строки преобразует двоичные файлы журналов (.blg) в формат CSV для более удобного анализа в приложениях электронных таблиц.

17.10 Когда следует использовать сторонние инструменты мониторинга вместо встроенных возможностей?

Рассмотрите сторонние инструменты, если:

  • Управление большим количеством SQL Server экземпляры (10+)
  • Требуется централизованный мониторинг в нескольких центрах обработки данных
  • Нужны расширенные функции, такие как предиктивная аналитика или обнаружение аномалий
  • Требуется интегрированное оповещение с системами управления инцидентами
  • Требование отчетности о соответствии и исторического анализа
  • Нехватка ресурсов администратора баз данных для создания и поддержки индивидуальных решений
  • Мониторинг гетерогенных сред баз данных (SQL Server, Oracle, MySQL и т. д.)

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

18. Дополнительные ресурсы

18.1 Официальная документация

Microsoft предоставляет обширную документацию для SQL Server монитор производительности:

18.2 Рекомендуемые инструменты и загрузки

Основные инструменты для SQL Server монитор производительности:

  • Инструмент PAL: https://github.com/clinthuffman/PAL
  • sp_WhoIsActive: http://whoisactive.com/
  • DBA Dash: https://dbadash.com/
  • SQLWATCH: https://github.com/marcingminski/sqlwatch
  • Набор для оказания первой помощи (Брент Озар): https://www.brentozar.com/first-aid/
  • SQL Server Студия управления: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

18.3 Ресурсы сообщества

Учитесь у SQL Server сообщество:

  • SQL Server Центральный: https://www.sqlservercentral.com/
  • Блог Брента Озара: https://www.brentozar.com/blog/
  • SQL Shack: https://www.sqlshack.com/
  • Советы по MSSQL: https://www.mssqltips.com/
  • Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
  • Переполнение стека SQL Server тег: https://stackoverflow.com/questions/tagged/sql-server

Эти ресурсы содержат учебные пособия, советы по устранению неполадок и рекомендации опытных специалистов. SQL Server профессионалы. Участие в форумах сообщества поможет вам учиться на опыте других и делиться собственными знаниями.


Об авторе

Юань Шэн старший администратор баз данных (DBA) с более чем 10-летним опытом работы в SQL Server сред и управления корпоративными базами данных. Он успешно реализовал сотни сценариев восстановления баз данных в финансовых, медицинских и производственных организациях.

Юань специализируется на SQL Server восстановление базы данных, решения с высокой доступностьюи оптимизация производительности. Его обширный практический опыт включает управление многотерабайтными базами данных, внедрение... Группы доступности Always Onа также разработка автоматизированных стратегий резервного копирования и восстановления для критически важных бизнес-систем.

Благодаря своим техническим знаниям и практическому подходу Юань фокусируется на создании всеобъемлющих руководств, которые помогают администраторам баз данных и ИТ-специалистам решать сложные задачи. SQL Server Он эффективно решает задачи. Он всегда в курсе последних новостей. SQL Server выпускает новые версии и развивает технологии баз данных Microsoft, регулярно тестируя сценарии восстановления, чтобы убедиться, что его рекомендации соответствуют реальным передовым практикам.

Есть вопросы о SQL Server Восстановление или требуется дополнительное руководство по устранению неполадок в базе данных? Юань приветствует отзывы и предложения для улучшения этих технических ресурсов.

Поделись сейчас: