適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
すべてのデータベースを対象として、トランザクション ログ領域の使用状況に関する統計情報を提供します。 また、待機やラッチ統計のリセットにも使えます。
構文
DBCC SQLPERF
(
[ LOGSPACE ]
| [ "sys.dm_os_latch_stats" , CLEAR ]
| [ "sys.dm_os_wait_stats" , CLEAR ]
)
[ WITH NO_INFOMSGS ]
引数
LOGSPACE
データベースごとに、トランザクション ログの現在のサイズと使用されているログ領域の割合を返します。 この情報を利用して、トランザクション ログで使用されている領域の量を監視します。
重要
SQL Server 2012(11.x)以降のトランザクションログのスペース使用情報の詳細については、この記事の 備考 セクションをご覧ください。
「sys.dm_os_latch_stats」、クリア
ラッチ統計をリセットします。 詳細については、 sys.dm_os_latch_statsを参照してください。
「sys.dm_os_wait_stats」、クリア
待機統計をリセットします。 詳細については、「sys.dm_os_wait_stats」を参照してください。
NO_INFOMSGS付き
重大度レベル 0 から 10 のすべての情報メッセージを表示しないようにします。
結果セット
次の表では、結果セットの列について説明します。
| 列名 | 定義 |
|---|---|
| データベース名 | ログ統計情報を表示するデータベースの名前。 |
| ログ サイズ (MB) | ログに割り当てられている現在のサイズ。 データベース エンジンでは内部ヘッダー情報の格納用に少量のディスク容量が確保されるので、この値は最初にログ領域に割り当てられた容量よりも常に小さくなります。 |
| ログの使用済み領域 (%) | 現在トランザクション ログ情報の保存に使用されているログ ファイルのパーセンテージ。 |
| 状態 | ログ ファイルの状態。 常に 0 です。 |
解説
SQL Server 2012 (11.x) 以降、データベース別のトランザクション ログの容量利用情報を返すには、 の代わりに DBCC SQLPERF(LOGSPACE) DMV を使用します。
トランザクション ログには、データベースで実行された各トランザクションが記録されます。 詳細については、 『トランザクションログ および SQL Serverトランザクションログアーキテクチャおよび管理ガイド』をご覧ください。
アクセス許可
SQL ServerはDBCC SQLPERF(LOGSPACE)を実行するためにサーバーの権限VIEW SERVER STATE必要です。 待機統計情報とラッチ統計情報をリセットするには、サーバーに対する ALTER SERVER STATE 権限が必要です。
SQL Database PremiumおよびBusiness Cricialティアは、データベース内の VIEW DATABASE STATE 権限が必要です。 SQL Database Standard、Basic、および General Purpose レベルでは、SQL Database 管理者アカウントが必要です。
例
A. すべてのデータベースのログ領域情報を表示する
次の例では、SQL Server インスタンスに含まれているすべてのデータベースの LOGSPACE 情報を表示します。
DBCC SQLPERF (LOGSPACE);
GO
結果セットは次のとおりです。
Database Name Log Size (MB) Log Space Used (%) Status
------------- ------------- ------------------ -----------
master 3.99219 14.3469 0
tempdb 1.99219 1.64216 0
model 1.0 12.7953 0
msdb 3.99219 17.0132 0
AdventureWorks 19.554688 17.748701 0
B. 待機統計をリセットする
次の例では、SQL Server インスタンスの待機統計をリセットします。
DBCC SQLPERF ("sys.dm_os_wait_stats", CLEAR);