Поделиться через


sys.dm_db_resource_stats (база данных SQL Azure)

Применимо к: База данных SQL Azure

Возвращает потребление ЦП, ввода-вывода и памяти для базы данных в База данных SQL Azure. Одна строка существует каждые 15 секунд, даже если действия отсутствуют. Хранятся данные за период длительность около одного часа.

Примечание.

sys.dm_db_resource_statsне поддерживается в Управляемый экземпляр SQL Azure. Вместо этого используйте представление каталога sys.server_resource_stats.

Столбцы Тип данных Description
end_time datetime Время в формате UTC, указывающее окончание текущего отчетного интервала.
avg_cpu_percent десятичная (5,2) Средний уровень использования вычислительных мощностей в процентах от предела для уровня службы.
avg_data_io_percent десятичная (5,2) Среднее использование операций ввода-вывода данных в процентах от предела уровня служб. Сведения о базах данных с гипермасштабированием см. в разделе "Данные ввода-вывода" в статистике использования ресурсов.
avg_log_write_percent десятичная (5,2) Средняя запись журнала транзакций (в МБ/с) в процентах от предельного уровня служб.
avg_memory_usage_percent десятичная (5,2) Средний уровень использования памяти в процентах от предела для уровня службы.

Это включает память, используемую для страниц буферного пула и хранилища объектов OLTP в памяти.
xtp_storage_percent десятичная (5,2) Использование хранилища для OLTP в памяти в процентах от ограничения пула в конце интервала отчетности. Это включает память, используемую для хранения следующих объектов OLTP в памяти: оптимизированные для памяти таблицы, индексы и переменные таблицы. Она также включает память, используемую для обработки операций ALTER TABLE в оптимизированных для памяти таблицах.

Возвращает значение 0, если OLTP в памяти не используется в базе данных.
max_worker_percent десятичная (5,2) Максимальное число одновременных рабочих ролей (запросов) в процентах от предела уровня служб базы данных.
max_session_percent десятичная (5,2) Максимальное число одновременных сеансов в процентах от предела уровня служб базы данных.
dtu_limit int Текущий параметр DTU для этой базы данных в течение этого интервала. Для баз данных с помощью модели на основе виртуальных ядер это столбец NULL.
cpu_limit десятичная (5,2) Количество виртуальных ядер для этой базы данных в течение этого интервала. Для баз данных, использующих модель на основе DTU, этот столбец является NULL.
avg_instance_cpu_percent десятичная (5,2) Среднее использование ЦП экземпляром ядра СУБД, в котором размещается пул, в процентах от предела экземпляра. Сообщается в течение одной минуты детализации и включает использование ЦП как пользователем, так и внутренними рабочими нагрузками.
avg_instance_memory_percent десятичная (5,2) Среднее использование памяти для экземпляра SQL Server, на котором размещена база данных. Включает использование памяти как пользователем, так и внутренними рабочими нагрузками.
avg_login_rate_percent десятичная (5,2) Указано только в ознакомительных целях. Не поддерживается. Будущая совместимость не гарантируется.
replica_role int Представляет текущую роль реплики.

0 — основной
1. Вторичная среда высокого уровня доступности (HA)
2 . Переадресатор георепликации
3. Именованной репликой

Сообщает 1 при подключении с ReadOnly намерением к любой доступной для чтения вторичной. Если подключение к географическому получателю без указания ReadOnly намерения, сообщает 2, чтобы отразить подключение к георепликатору пересылки. При подключении к именованной реплике без указания ReadOnly намерения сообщает 3.

Совет

Дополнительные сведения об этих ограничениях и уровнях служб см. в разделах "Уровни служб", "Вручную настроить производительность запросов в База данных SQL Azure" и База данных SQL ограничения ресурсов и управление ресурсами.

Разрешения

Для этого представления требуется VIEW DATABASE STATE разрешение.

Замечания

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

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

Для менее детального представления этих данных с более длительным сроком хранения используйте sys.resource_stats представление каталога в База данных SQL Azure. Это представление сохраняет данные каждые 5 минут и сохраняет исторические данные в течение 14 дней. Дополнительные сведения см. в sys.resource_stats.

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

Примеры

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

SELECT * FROM sys.dm_db_resource_stats ORDER BY end_time DESC;

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

SELECT end_time,
  (SELECT Max(v)
   FROM (VALUES (avg_cpu_percent), (avg_data_io_percent), (avg_log_write_percent)) AS
   value(v)) AS [avg_DTU_percent]
FROM sys.dm_db_resource_stats;

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

SELECT
    AVG(avg_cpu_percent) AS 'Average CPU Utilization In Percent',
    MAX(avg_cpu_percent) AS 'Maximum CPU Utilization In Percent',
    AVG(avg_data_io_percent) AS 'Average Data IO In Percent',
    MAX(avg_data_io_percent) AS 'Maximum Data IO In Percent',
    AVG(avg_log_write_percent) AS 'Average Log Write I/O Throughput Utilization In Percent',
    MAX(avg_log_write_percent) AS 'Maximum Log Write I/O Throughput Utilization In Percent',
    AVG(avg_memory_usage_percent) AS 'Average Memory Usage In Percent',
    MAX(avg_memory_usage_percent) AS 'Maximum Memory Usage In Percent'
FROM sys.dm_db_resource_stats;