英語で読む

次の方法で共有


sys.dm_hs_database_log_rate (Transact-SQL)

適用対象: Azure SQL Database の

各結果セット行は、Hyperscale データベースのログ生成率を制御 (削減) するコンポーネントを返します。 Hyperscale レベルのアーキテクチャ には、ログ生成率の低下に寄与する可能性がある複数の コンポーネントがあります。

セカンダリ コンピューティング レプリカやページ サーバーなどの特定の種類のコンポーネントでは、データベースの全体的な正常性と安定性を確保するために、プライマリ コンピューティング レプリカのログ生成率を一時的に減らすことができます。

どのコンポーネントでもログ生成率が低下しない場合は、プライマリ コンピューティング レプリカ コンポーネントに対して行が返され、データベースに対して許可されるログ生成率の最大値が表示されます。

この動的管理機能は、セッションがプライマリ レプリカに接続されている場合にのみ行を返します。

注意

sys.dm_hs_database_log_rate 動的管理機能は、現在、Azure SQL Database Hyperscale レベルにのみ適用されます。

構文

syntaxsql
sys.dm_hs_database_log_rate ( 
{ database_id | NULL }                                     
)                             

引数

database_id

database_id は、既定値のないデータベース ID を表す 整数です。 有効な入力は、データベース ID または NULLです。

指定した database_id: その特定のデータベースの行を返します。

NULL: 単一データベースの場合、現在のデータベースの行を返します。 エラスティック プール内のデータベースの場合、呼び出し元がに十分な アクセス許可を持つプール内のすべてのデータベースの行を返します。

組み込み関数 DB_ID を指定できます。

返されるテーブル

列名 データ型 形容
database_id int NOT NULL データベースの識別子。 値は 1 つのデータベースまたはエラスティック プール内で一意ですが、論理サーバー内では一意ではありません。
replica_id uniqueidentifier NOT NULL sys.dm_database_replica_statesreplica_id 列に対応するコンピューティング レプリカの識別子。 component_id が Hyperscale ページ サーバーに対応する場合に NULL します。

レプリカに接続すると、DATABASEPROPERTYEX(DB_NAME(), 'ReplicaID') 関数呼び出しによってこの値が返されます。
file_id int NULL ログ生成速度を制限するページ サーバーに対応するデータベース内のデータベース ファイルの ID。 ロールがページ サーバーの場合にのみ設定され、それ以外の場合は NULLを返します。 この値は、sys.database_filesfile_id 列に対応します。
current_max_log_rate bigint NOT NULL プライマリ コンピューティング レプリカでのログ生成レートの現在の最大ログ レート制限 (バイト/秒)。ログ生成速度を低下させるコンポーネントがない場合は、Hyperscale データベースのログ生成速度の制限を報告します。
component_id uniqueidentifier NOT NULL ページ サーバーやコンピューティング レプリカなどの Hyperscale コンポーネントの一意識別子。
role smallint NOT NULL を する ログ生成を削減できる既存のすべてのコンポーネント ロール。

Unknown = 0
Storage = 1
Primary = 2
Replica = 4
LocalDestage = 5
Destage = 6
GeoReplica = 10
StorageCheckpoint = 12
MigrationTarget = 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 = 高可用性 (HA) レプリカや名前付きレプリカなどのセカンダリ コンピューティング レプリカ。
LocalDestage = ログ サービス
Destage = 長期ログ ストレージ
GeoReplica = geo セカンダリ レプリカ
StorageCheckpoint = ページ サーバー上のチェックポイント
MigrationTarget = Hyperscale から非 Hyperscale データベースへの逆移行中のターゲット データベース。
catchup_rate bigint NOT NULL キャッチアップ レート (バイト/秒)。ログ レートが低下しない場合は、0 を返します。
catchup_bytes bigint NOT NULL プライマリ コンピューティング レプリカに追いつくためにコンポーネントが適用する必要があるトランザクション ログの量 (バイト単位)。 コンポーネントが追いついたときの 0 を返します。
last_reported_time datetime を する ハイパースケール ログ サービスが最後に値を報告した時刻。

備考

Azure SQL Database の Hyperscale サービス レベルでは、ログ サービスによって、分散コンポーネントがトランザクション ログの適用に大きく遅れないようにします。 これは、システムの全体的な正常性と安定性を維持するために必要です。 コンポーネントが遅れ、そのキャッチアップ率が現在のログ生成速度より低い場合、ログ サービスはプライマリのログ生成率を減らします。 sys.dm_hs_database_log_rate() DMF を使用して、ログ レートの低下の原因となっているコンポーネントと、ログ レートの削減期間を把握できます。

ログ レートの削減の詳細については、「Hyperscaleのパフォーマンス診断 」を参照してください。

権限

この動的管理機能には、VIEW DATABASE PERFORMANCE STATE 権限 必要があります。

ある。 特定のデータベースでログ レートの低下を引き起こしているコンポーネントを返します

次の例では、ログ レートの低下の原因となっているコンポーネントの行を返します。 どのコンポーネントでもログ生成率が低下しない場合は、プライマリ コンピューティングに対して行が返され、データベースで許可されるログ生成率の最大値が表示されます。

SQL
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. ログ レートの低下の原因となっているコンポーネントを返す

エラスティック プール内のデータベースに接続されている場合、次の例では、十分なアクセス許可を持つプール内のすべてのデータベースについて、ログ レートの低下の原因となっているコンポーネントの行を返します。 1 つのデータベースに接続されている場合は、データベースの行を返します。

SQL
SELECT current_max_log_rate_bps, role_desc, catchup_rate_bps, catchup_distance_bytes 
FROM sys.dm_hs_database_log_rate(NULL);