Сбор и наборы данных наблюдателя за базами данных (предварительная версия)

Применимо к: База данных SQL Azure Управляемый экземпляр SQL Azure

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

сбор данных

Наблюдатель за базами данных собирает данные мониторинга с периодическими интервалами с помощью запросов T-SQL. Данные, собранные в каждом выполнении запроса, называются примером. Частота сбора выборок зависит от набора данных. Например, часто меняющиеся данные, такие как счетчики производительности SQL, могут собираться каждые 10 секунд, в то время как в основном статические данные, такие как конфигурация базы данных, могут собираться каждые пять минут. Дополнительные сведения см. в разделе "Наборы данных".

Наблюдатель за базами данных использует преимущества приема потоковой передачи в Azure Data Explorer и Аналитике в режиме реального времени в Microsoft Fabric для обеспечения практически реального времени мониторинга. Как правило, собранные данные мониторинга SQL становятся доступными для создания отчетов и анализа менее чем за 10 секунд. Вы можете отслеживать задержку приема данных на панелях мониторинга наблюдателя за базами данных, используя ссылку статистики приема.

Взаимодействие между наблюдателем базы данных и рабочими нагрузками приложений

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

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

Чтобы избежать конфликтов параллелизма, таких как блокировка и взаимоблокировка между сбором данных и рабочими нагрузками базы данных, выполняемыми в ресурсах SQL Azure, запросы мониторинга используют короткие тайм-ауты блокировки и низкий приоритет взаимоблокировки. Если конфликт параллелизма возникает, приоритет предоставляется запросам рабочей нагрузки приложения. В зависимости от шаблонов рабочей нагрузки приложения это может привести к случайным пробелам в собранных данных для некоторых наборов данных.

Сбор данных в эластичных пулах

Для мониторинга эластичного пула необходимо назначить одну базу данных в пуле в качестве базы данных привязки. Наблюдатель за базами данных подключается к базе данных привязки. Так как наблюдатель содержит VIEW SERVER PERFORMANCE STATE разрешение, системные представления в базе данных привязки предоставляют данные мониторинга для пула в целом.

Совет

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

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

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

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

Мониторинг плотных эластичных пулов

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

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

Совет

Чтобы отслеживать плотный эластичные пулы, включите мониторинг на уровне пула, добавив эластичные пулы в качестве целевого объекта.

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

Место расположения данных

Клиенты могут хранить собранные данные мониторинга SQL в одном из трех типов хранилища данных:

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

    Клиенты могут выбрать конкретный регион Azure в географическом регионе Azure в качестве расположения кластера Azure Data Explorer и базы данных. Дополнительные сведения о возможностях репликации данных в Azure Data Explorer см. в обзоре непрерывности бизнес-процессов и аварийного восстановления.

  • База данных в бесплатном кластере Azure Data Explorer.

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

  • База данных в Аналитике в режиме реального времени в Microsoft Fabric.

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

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

Клиенты также могут выровнять географию и регион кластера Azure Data Explorer с географией и регионом отслеживаемых ресурсов SQL Azure. Если ресурсы SQL Azure находятся в нескольких регионах, клиентам может потребоваться создать несколько наблюдателей и несколько кластеров Azure Data Explorer для удовлетворения требований к месту размещения данных.

Наборы данных

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

Примечание.

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

Имя набора данных Имя таблицы Частота сбора (hh:mm:ss) Description
Активные сеансы sqldb_database_active_sessions 00:00:30 Каждая строка представляет сеанс, выполняющий запрос, является блокировщиком или открытой транзакцией.
Журнал резервного копирования sqldb_database_sql_backup_history 00:05:00 Каждая строка представляет собой успешно завершенную резервную копию базы данных.
Обработка изменений sqldb_database_change_processing 00:01:00 Каждая строка представляет моментальный снимок статистики статистической проверки журнала для функции обработки изменений, такой как запись измененных данных или канал изменений (Azure Synapse Link).
Изменение ошибок обработки sqldb_database_change_processing_errors 00:01:00 Каждая строка представляет ошибку, которая произошла во время обработки изменений, при использовании функции обработки изменений, такой как запись измененных данных или канал изменений (Azure Synapse Link).
Подключение sqldb_database_connectivity 00:00:30 Каждая строка представляет пробу подключения (имя входа и запрос) для базы данных.
Геореплики sqldb_database_geo_replicas 00:00:30 Каждая строка представляет собой первичную или вторичную геореплику, включая метаданные георепликации и статистику.
Метаданные индекса sqldb_database_index_metadata 00:30:00 Каждая строка представляет секцию индекса и включает определение индекса, свойства и операционную статистику.
Использование памяти sqldb_database_memory_utilization 00:00:10 Каждая строка представляет клерка памяти и включает потребление памяти клерком в экземпляре ядра СУБД.
Отсутствующие индексы sqldb_database_missing_indexes 00:15:00 Каждая строка представляет индекс, который может повысить производительность запросов при создании.
События вне памяти sqldb_database_oom_events 00:01:00 Каждая строка представляет событие вне памяти в ядре СУБД.
Счетчики производительности (общие) sqldb_database_performance_counters_common 00:00:10 Каждая строка представляет счетчик производительности экземпляра ядра СУБД. Этот набор данных включает часто используемые счетчики.
Счетчики производительности (подробные сведения) sqldb_database_performance_counters_detailed 00:01:00 Каждая строка представляет счетчик производительности экземпляра ядра СУБД. Этот набор данных включает счетчики, которые могут потребоваться для подробного мониторинга и устранения неполадок.
Свойства sqldb_database_properties 00:05:00 Каждая строка представляет базу данных и включает параметры базы данных, ограничения управления ресурсами и другие метаданные базы данных.
Статистика среды выполнения запросов sqldb_database_query_runtime_stats 00:15:00 Каждая строка представляет хранилище запросов интервал времени выполнения и включает статистику выполнения запросов.
Статистика ожидания запросов sqldb_database_query_wait_stats 00:15:00 Каждая строка представляет интервал времени выполнения хранилище запросов и включает статистику категорий ожидания.
Реплики sqldb_database_replicas 00:00:10 Каждая строка представляет реплику базы данных, включая метаданные репликации и статистику. Включает основную реплику и геореплики при сборе на основной и вторичные реплики при сборе на вторичную.
Загруженность ресурсов sqldb_database_resource_utilization 00:00:15 Каждая строка представляет данные ЦП, операций ввода-вывода данных, операций ввода-вывода журнала и другие статистические данные о потреблении ресурсов для базы данных в интервале времени.
Статистика сеанса sqldb_database_session_stats 00:01:00 Каждая строка представляет сводку статистики сеансов для базы данных, агрегированную атрибутами сеанса без аддитивных сеансов, такими как имя входа, имя узла, имя приложения и т. д.
Планировщики SOS sqldb_database_sos_schedulers 00:01:00 Каждая строка представляет планировщик SOS и включает статистику для планировщика, узла ЦП и узла памяти.
Операции ввода-вывода в хранилище sqldb_database_storage_io 00:00:10 Каждая строка представляет файл базы данных и включает совокупную статистику операций ввода-вывода в секунду, пропускную способность и задержку для файла.
Использование хранилища sqldb_database_storage_utilization 00:01:00 Каждая строка представляет базу данных и включает его использование хранилища, включая tempdbхранилище запросов и постоянное хранилище версий.
Метаданные таблицы sqldb_database_table_metadata 00:30:00 Каждая строка представляет таблицу или индексированное представление и включает такие метаданные, как число строк, использование пространства, сжатие данных, столбцы и ограничения.
Статистика ожидания sqldb_database_wait_stats 00:00:10 Каждая строка представляет тип ожидания и включает совокупную статистику ожидания экземпляра ядра СУБД. Для баз данных в эластичном пуле собираются только статистические данные ожидания с областью действия базы данных.

Примечание.

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

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

Общие столбцы

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

Имя столбца Description
subscription_id Идентификатор подписки Azure базы данных SQL.
resource_group_name Имя группы ресурсов базы данных SQL.
resource_id Идентификатор ресурса Azure базы данных SQL.
sample_time_utc Время наблюдения значений в строке в формате UTC.
collection_time_utc Время сбора строки наблюдателем в формате UTC. Этот столбец присутствует в наборах данных, где время сбора может отличаться от времени выборки.
replica_type Одно из них: основной, вторичный, вторичный, переадресатор георепликации, именованный вторичный.
logical_server_name Имя логического сервера в База данных SQL Azure с отслеживаемой базой данных или эластичным пулом.
database_name Имя отслеживаемой базы данных.
database_id Идентификатор базы данных отслеживаемой базы данных, уникальный в логическом сервере.
logical_database_id Уникальный идентификатор базы данных, который остается неизменным в течение всего времени существования пользовательской базы данных. Переименование базы данных или изменение цели службы не изменяет это значение.
physical_database_id Уникальный идентификатор базы данных для текущей физической базы данных, соответствующей пользовательской базе данных. Изменение цели службы базы данных приводит к изменению этого значения.
replica_id Уникальный идентификатор реплики вычислений гипермасштабирования.

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

Например, sqldb_database_resource_utilization набор данных является производным от динамического административного представления sys.dm_db_resource_stats . DmV содержит столбец, который является end_time временем наблюдения для каждой статистической статистики ресурсов отчетов о строках для 15-секундного интервала. Это время сообщается в столбце sample_time_utc . Когда наблюдатель базы данных запрашивает это динамическое представление, результирующий набор может содержать несколько строк, каждый из которых отличается end_time. Все эти строки имеют одинаковое collection_time_utc значение.