sys.dm_hs_database_log_rate (Transact-SQL)
применимо к:Базе данных SQL Azure
Каждая строка набора результатов возвращает компонент, который управляет скоростью создания журналов (уменьшает) в базе данных Гипермасштабирования. В архитектуре уровня "Гипермасштабирование" существует несколько компонентов
Некоторые типы компонентов, такие как вторичные вычислительные реплики или серверы страниц, могут временно снизить частоту создания журналов на первичной реплике вычислений, чтобы обеспечить общую работоспособность и стабильность базы данных.
Если скорость создания журналов не уменьшается с помощью какого-либо компонента, возвращается строка для основного компонента вычислительной реплики, показывающая максимальную разрешенную частоту создания журналов для базы данных.
Эта динамическая функция управления возвращает строки, только если сеанс подключен к первичной реплике.
Заметка
В настоящее время функция динамического управления sys.dm_hs_database_log_rate
применяется только к уровню гипермасштабирования базы данных SQL Azure.
Синтаксис
sys.dm_hs_database_log_rate (
{ database_id | NULL }
)
Аргументы
database_id
database_id — это целое число , представляющее идентификатор базы данных без значения по умолчанию. Допустимые входные данные — это идентификатор базы данных или NULL
.
Указанный database_id
: возвращает строку для этой конкретной базы данных.
NULL
: для одной базы данных возвращает строку для текущей базы данных. Для базы данных в эластичном пуле возвращает строки для всех баз данных в пуле, где вызывающий объект имеет достаточные разрешения .
Можно указать встроенную функцию DB_ID.
Возвращаемая таблица
Имя столбца | Тип данных | Описание |
---|---|---|
database_id |
int NOT NULL | Идентификатор базы данных. Значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере. |
replica_id |
uniqueidentifier NOT NULL | Идентификатор вычислительной реплики, соответствующей столбцу replica_id в sys.dm_database_replica_states .
NULL , если component_id соответствует серверу страницы с гипермасштабированием.это значение возвращается вызовом функции DATABASEPROPERTYEX(DB_NAME(), 'ReplicaID') при подключении к реплике. |
file_id |
int NULL | Идентификатор файла базы данных в базе данных, соответствующей серверу страницы, ограничивающей частоту создания журналов. Заполняется только в том случае, если роль является сервером страницы, в противном случае возвращается NULL . Это значение соответствует столбцу file_id в sys.database_files . |
current_max_log_rate |
bigint NOT NULL | Текущее максимальное ограничение частоты создания журналов в первичной вычислительной реплике в байтах/с. Если компонент не снижает частоту создания журналов, сообщает ограничение скорости создания журнала для базы данных Гипермасштабирования. |
component_id |
uniqueidentifier NOT NULL | Уникальный идентификатор компонента гипермасштабирования, например сервера страницы или реплики вычислений. |
role |
smallint NOT NULL | Все существующие роли компонентов, которые могут уменьшить создание журналов.Unknown = 0Storage = 1Primary = 2Replica = 4LocalDestage = 5Destage = 6 GeoReplica = 10StorageCheckpoint = 12MigrationTarget = 14Если скорость создания журнала ограничена, на первичной реплике вычислений могут наблюдаться следующие типы ожидания, соответствующие каждой роли: 1 - RBIO_RG_STORAGE 4 - RBIO_RG_REPLICA 5 — RBIO_RG_LOCALDESTAGE 6 — RBIO_RG_DESTAGE 10 - RBIO_RG_GEOREPLICA 12 - RBIO_RG_STORAGE_CHECKPOINT 14 - RBIO_RG_MIGRATION_TARGET Дополнительные сведения см. в разделе Регулирование скорости журналов |
role_desc |
nvarchar(60) NOT NULL |
Unknown = роль компонента не известнаStorage = серверы страницыPrimary = первичная реплика вычисленийReplica = вторичная реплика вычислений, например реплика высокой доступности или именованной реплики.LocalDestage = служба журналовDestage = долгосрочное хранилище журналовGeoReplica = гео-вторичная репликаStorageCheckpoint = контрольная точка на сервере страницыMigrationTarget = целевая база данных во время обратной миграции из гипермасштабирования в базу данных, не относясь к гипермасштабированию. |
catchup_rate |
bigint NOT NULL | Скорость перехвата в байтах/с. Возвращает ноль, если скорость журнала не уменьшается. |
catchup_bytes |
bigint NOT NULL | Объем журнала транзакций в байтах, который компонент должен применяться для перехвата первичной реплики вычислений. Возвращает 0 при перехвате компонента. |
last_reported_time |
даты и времени | Последний раз, когда служба журналов Гипермасштабирования сообщила о значениях. |
Замечания
На уровне служб "Гипермасштабирование" базы данных SQL Azure служба журналов гарантирует, что распределенные компоненты не будут далеко позади применения журнала транзакций. Это необходимо для поддержания общей работоспособности системы и стабильности. Если компоненты находятся за пределами и их скорость перехвата меньше текущей частоты создания журналов, служба журналов уменьшает частоту создания журналов на первичном уровне.
sys.dm_hs_database_log_rate()
DMF можно использовать для понимания того, какой компонент вызывает снижение частоты журналов и в какой степени, а также насколько долго может длиться сокращение скорости журнала.
Дополнительные сведения о снижении скорости журнала см. в разделе диагностика производительности вгипермасштабирования.
Разрешения
Для этой динамической функции управления требуется разрешение VIEW DATABASE PERFORMANCE STATE.
Примеры
A. Возврат компонента, вызывающего снижение скорости журнала в определенной базе данных
В следующем примере возвращается строка для компонента, вызывающего снижение скорости журнала. Если скорость создания журналов не уменьшается с помощью какого-либо компонента, строка будет возвращена для основного вычисления, показывающая максимальную разрешенную частоту создания журналов для базы данных.
SELECT current_max_log_rate_bps, role_desc, catchup_rate_bps, catchup_distance_bytes
FROM sys.dm_hs_database_log_rate(DB_ID(N'Contosodb'));
B. Возврат компонентов, вызывающих снижение частоты журналов
При подключении к базе данных в эластичном пуле в следующем примере возвращается строка для компонента, вызывающего сокращение частоты журналов, для каждой базы данных в пуле, где есть достаточные разрешения. При подключении к одной базе данных возвращает строку для базы данных.
SELECT current_max_log_rate_bps, role_desc, catchup_rate_bps, catchup_distance_bytes
FROM sys.dm_hs_database_log_rate(NULL);
Связанное содержимое
- sys.dm_database_replica_states (база данных SQL Azure)
-
sys.dm_exec_requests (Transact-SQL) - sys.dm_os_wait_stats (Transact-SQL)
- DATABASEPROPERTYEX (Transact-SQL)