各結果セット行は、Hyperscale データベースのログ生成率を制御 (削減) するコンポーネントを返します。 Hyperscale レベルのアーキテクチャ には、ログ生成率の低下に寄与する可能性がある複数の
セカンダリ コンピューティング レプリカやページ サーバーなどの特定の種類のコンポーネントでは、データベースの全体的な正常性と安定性を確保するために、プライマリ コンピューティング レプリカのログ生成率を一時的に減らすことができます。
どのコンポーネントでもログ生成率が低下しない場合は、プライマリ コンピューティング レプリカ コンポーネントに対して行が返され、データベースに対して許可されるログ生成率の最大値が表示されます。
この動的管理機能は、セッションがプライマリ レプリカに接続されている場合にのみ行を返します。
手記
sys.dm_hs_database_log_rate
動的管理機能は、現在、Azure SQL Database Hyperscale レベルにのみ適用されます。
構文
sys.dm_hs_database_log_rate (
{ database_id | NULL }
)
引数
database_id
NULL
です。
指定した database_id
: その特定のデータベースの行を返します。
NULL
: 単一データベースの場合、現在のデータベースの行を返します。 エラスティック プール内のデータベースの場合、呼び出し元がに十分な
組み込み関数 DB_ID を指定できます。
返されるテーブル
備考
Azure SQL Database の Hyperscale サービス レベルでは、ログ サービスによって、分散コンポーネントがトランザクション ログの適用に大きく遅れないようにします。 これは、システムの全体的な正常性と安定性を維持するために必要です。 コンポーネントが遅れ、そのキャッチアップ率が現在のログ生成速度より低い場合、ログ サービスはプライマリのログ生成率を減らします。
sys.dm_hs_database_log_rate()
DMF を使用して、ログ レートの低下の原因となっているコンポーネントと、ログ レートの削減期間を把握できます。
ログ レートの削減の詳細については、「Hyperscaleのパフォーマンス診断
権限
この動的管理機能には、VIEW DATABASE PERFORMANCE STATE 権限
例
ある。 特定のデータベースでログ レートの低下を引き起こしているコンポーネントを返します
次の例では、ログ レートの低下の原因となっているコンポーネントの行を返します。 どのコンポーネントでもログ生成率が低下しない場合は、プライマリ コンピューティングに対して行が返され、データベースで許可されるログ生成率の最大値が表示されます。
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 つのデータベースに接続されている場合は、データベースの行を返します。
SELECT current_max_log_rate_bps, role_desc, catchup_rate_bps, catchup_distance_bytes
FROM sys.dm_hs_database_log_rate(NULL);