8

SQL Server 2008 Enterprise Editionを実行していて、次のパフォーマンスメトリックを監視したい(つまり、動的管理ビューを介して(SQL内から))。

平均/最大読み取り/書き込みI/O スライディング時間ウィンドウのデータベースファイルごとのミリ秒単位の待機。

つまり、データベースファイルごとに4つの数値:平均読み取り待機、最大読み取り待機、平均書き込み待機、最大書き込み待機。すべてミリ秒単位で、すべてが適切な(またはより適切に構成可能な)スライディング時間ウィンドウの場合。

どうやってやるの?

sys.dm_os_performance_countersPS:VIEW SERVER STATE権限があり、、などsys.database_filesを読み取ることができますsys.dm_io_virtual_file_stats

PS2:少なくとも1つのツール(SQLServer用のQuestSpotlight 7)は、データベースファイルごとにミリ秒単位で最大I/O待機を提供できます。だから、何らかの方法が必要です..

4

4 に答える 4

4

以下は、SSMSのActivieMonitorが使用するクエリです。io_stallフィールドに合計待機時間のラベルを付けます。fs.io_stall_read_msおよびフィールドを追加してfs.io_stall_write_ms、読み取り/書き込み固有の数値を取得できます。

SELECT     
    d.name AS [Database], 
    f.physical_name AS [File], 
    (fs.num_of_bytes_read / 1024.0 / 1024.0) [Total MB Read], 
    (fs.num_of_bytes_written / 1024.0 / 1024.0) AS [Total MB Written], 
    (fs.num_of_reads + fs.num_of_writes) AS [Total I/O Count], 
    fs.io_stall AS [Total I/O Wait Time (ms)], 
    fs.size_on_disk_bytes / 1024 / 1024 AS [Size (MB)],
    fs.io_stall_read_ms
FROM sys.dm_io_virtual_file_stats(default, default) AS fs
INNER JOIN sys.master_files f ON fs.database_id = f.database_id AND fs.file_id = f.file_id
INNER JOIN sys.databases d ON d.database_id = fs.database_id; 

このクエリは合計のみを提供します。一定の間隔で実行し、結果をタイムスタンプ付きの一時テーブルに記録する必要があります。次に、このテーブルをクエリして、必要に応じて最小/最大/平均を取得できます。スライディングタイムウィンドウは、そのテーブルに保持するデータの量とクエリする期間の関数になります。

于 2012-11-27T18:09:38.777 に答える
2

問題は、SQLがファイルごとに取得しようとしている詳細レベルを必ずしも追跡しないことです。おそらく、パフォーマンスモニターも使用する必要があります。時間の経過に伴うディスク上のI/Oの詳細については、両方のパフォーマンスモニターを確認する組み合わせアプローチを使用する必要があります。前述のSQL監視手法と同様に、より完全な全体像を把握できます。それがお役に立てば幸いです。

于 2012-11-27T21:42:49.490 に答える
2

ファイルごとの待機統計の収集については、次を参照してください http://msdn.microsoft.com/en-us/library/ms187309(v=sql.105).aspx

于 2012-11-30T02:59:09.267 に答える
2

いくつかのスクリプトを使用してメトリックを取得できます。SQL Server 8 に組み込まれているデータ コレクション/データ コレクション サーバーを有効にしました。これは、複数のインスタンスからメトリックを収集し、コレクターとして指定した mssql サーバーに格納します。各インスタンスに提供されるレポートは、ほとんどの目的に適しています。パフォーマンスのヒントなしでパフォーマンス/ディスク使用量/およびクエリ統計を報告するだけなので、データコレクターの機能を超えるサードパーティツールがあると確信しています。

これにより、ログとデータ ファイルの両方のデータ ファイルの成長予測と成長イベントの概要が得られますが、ファイルまたはファイル グループごとに探しているメトリックが得られるかどうかはわかりません:)

注: データ コレクション ウェアハウスを使用する場合は、サイズが大きくなるにつれて定期的にインデックスを再構築することを検討する必要があります。それは約を収集します。私のシナリオでは 20 MB/日のデータ。

于 2012-11-29T04:24:31.653 に答える