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

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

Наблюдение за SQL Server позволяет делать следующее.

  • Определять возможности увеличения производительности. Например, наблюдая за временем отклика для часто используемых запросов, можно определить, требуется ли изменить текст запроса или индексы таблицы.

  • Оценивать активность пользователей. Например, наблюдая за пользователями, которые подключаются к экземпляру SQL Server, можно определить, правильно ли настроены параметры безопасности, и проверить работу приложений и систем разработки. Наблюдая за выполнением SQL-запросов, можно определить, правильно ли они написаны, и проверить результаты, которые они возвращают.

  • Устранять любые проблемы или отлаживать компоненты приложений, например хранимые процедуры.

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

Для организации эффективного мониторинга компонентов SQL Server выполните следующие действия.

  1. Определите цели наблюдения.

  2. Выберите подходящее средство.

  3. Определите компоненты, подлежащие мониторингу.

  4. Выберите метрики для этих компонентов.

  5. Произведите мониторинг работы сервера.

  6. Проанализируйте данные.

Ниже подробно описан каждый шаг.

Определение целей наблюдения

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

  • Формирование основных критериев оценки производительности.

  • Определение изменений производительности во времени.

  • Диагностика проблем, связанных с производительностью.

  • Определение компонентов и процессов, требующих оптимизации.

  • Сравнение влияния различных клиентских приложений на производительность.

  • Аудит активности пользователей.

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

  • Проверка архитектуры базы данных.

  • Проверка расписания обслуживания.

  • Проверка планов резервного копирования и восстановления.

  • Определение необходимости изменения конфигурации оборудования.

Выбор подходящего средства

Определив цели наблюдения, следует выбрать соответствующие средства. В состав SQL Server и операционной системы Windows входит полный набор средств мониторинга серверов в средах с большим количеством транзакций. Эти средства подробно описывают состояние экземпляра компонента SQL Server Database Engine или экземпляра служб SQL Server Analysis Services.

Windows предоставляет следующие средства наблюдение за приложениями, запущенными на сервере.

  • Системный монитор, который позволяет собирать и просматривать данные об использовании памяти, диска и процессора в реальном времени.

  • Журналы и предупреждения производительности.

  • Диспетчер задач.

Дополнительные сведения о средствах Windows Server и Windows см. в документации по операционной системе Windows.

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

  • SQL Trace

  • Приложение SQL Server Profiler

  • Монитор активности Среда SQL Server Management Studio

  • Графическое отображение результатов инструкции Showplan в среде Среда SQL Server Management Studio

  • Хранимые процедуры

  • Консольные команды базы данных (DBCC)

  • Встроенные функции

  • Флаги трассировки

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

Определение компонентов, подлежащих мониторингу

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

Выбор метрик для наблюдаемых компонентов

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

Наблюдение за работой сервера

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

Анализ данных

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

Ниже описан процесс сбора данных о событиях и работа с ними.

  1. Примените фильтры, чтобы ограничить объем собираемых данных о событиях.

    Фильтры позволяют системе собирать данные только о тех событиях, которые имеют отношение к поставленной задаче наблюдения. Например, если требуется проконтролировать медленные запросы, с помощью фильтра можно собрать данные только о тех запросах к конкретной базе данных, которые выполняются более 30 секунд. Дополнительные сведения см. в разделах Как создать фильтр трассировки (Transact-SQL) и Как фильтровать события в трассировке (SQL Server Profiler).

  2. Соберите данные о событиях.

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

  3. Сохраните собранные данные о событиях.

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

  4. Создайте шаблоны трассировки, содержащие параметры сбора событий.

    Шаблоны трассировки включают определения самих событий, данных о событиях и фильтрах, которые применяются для сбора данных. Эти шаблоны применяются для мониторинга определенного набора событий в будущем и не требуют переопределения событий, данных и фильтров. Например, если часто приходится следить за количеством взаимоблокировок и пользователями, которые в них участвуют, можно создать шаблон, определив нужные события, данные о событиях и фильтры, и сохранить его в отдельном файле; впоследствии этот фильтр можно использовать для мониторинга взаимоблокировок. Приложение Приложение SQL Server Profiler поддерживает шаблоны трассировки. Дополнительные сведения см. в разделах Как установить определения трассировки по умолчанию (приложение SQL Server Profiler) и Как создать шаблон трассировки (приложение SQL Server Profiler).

  5. Проанализируйте собранные данные о событиях.

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

    Анализ данных подразумевает определение того, что происходит и почему. В зависимости от типа анализа эти сведения позволяют совершить действия, которые могут увеличить производительность, например добавить память, изменить индексы, исправить проблемы в коде инструкций Transact-SQL и хранимых процедур и т. п. Например, используя помощник по настройке компонента Database Engine, можно проанализировать трассировку, записанную приложением Приложение SQL Server Profiler, и получить рекомендации по построению индексов. Дополнительные сведения см. в разделе Настройка физической структуры базы данных.

  6. Воспроизведите собранные данные о событиях.

    Возможность воспроизведения позволяет создать копию базы данных, где были собраны данные, и повторить события так, как будто они произошли в реальной системе. Это возможно только в приложении Приложение SQL Server Profiler. События можно воспроизводить с первоначальной скоростью, с максимально возможной скоростью (чтобы загрузить систему) или пошагово (чтобы проанализировать состояние системы после каждого события). Анализ событий в тестовой среде позволяет избежать повреждений в производственной системе. Дополнительные сведения см. в разделе Воспроизведение трассировки.