sys.dm_db_log_space_usage (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
トランザクション ログの領域使用量情報を返します。
Note
すべてのトランザクション ログ ファイルが結合されます。
列名 | データ型 | 説明 |
---|---|---|
database_id | smallint | データベース ID。 Azure SQL Database では、値は 1 つのデータベースまたは Elastic Pool 内で一意ですが、論理サーバー内では一意ではありません。 |
total_log_size_in_bytes | bigint | ログのサイズ |
used_log_space_in_bytes | bigint | ログの占有サイズ |
used_log_space_in_percent | real | ログの占有サイズ (ログの合計サイズに対する割合) |
log_space_in_bytes_since_last_backup | bigint | 前回のログ バックアップ以降に使用された領域の量 適用対象: SQL Server 2014 (12.x) 以降、SQL Database。 |
アクセス許可
SQL Server と SQL Managed Instance では、VIEW SERVER STATE
アクセス許可が必要です。
SQL Database の Basic、S0、S1 サービス対象、および Elastic Pool のデータベースの場合、サーバー管理者アカウント、Microsoft Entra 管理者アカウント、または ##MS_ServerStateReader##
サーバー ロールのメンバーシップが必要です。 他のすべての SQL Database サービス目標では、データベースに対する VIEW DATABASE STATE
アクセス許可または ##MS_ServerStateReader##
サーバー ロールのメンバーシップのいずれかが必要です。
SQL Server 2022 以降でのアクセス許可
サーバーに対する VIEW SERVER PERFORMANCE STATE アクセス許可が必要です。
例
A. tempdb の空きログ領域の量を決定する
次のクエリでは、tempdb
で使用可能な空きログ領域の合計がメガバイト (MB) 単位で返されます。
USE tempdb;
GO
SELECT
(total_log_size_in_bytes - used_log_space_in_bytes)*1.0/1024/1024 AS [free log space in MB]
FROM sys.dm_db_log_space_usage;