Sys.dm_io_virtual_file_stats DMFを使用して生成しようとしているので、IOいくつかのサーバー全体で情報を待機します。この投稿に出会ったのは、Paul Randallです。 http:// www.sqlskills.com/blogs/paul/survey-tempdb-and-transaction-log-io-latencies/ 。その中で、彼は人々にこのクエリの結果で応答するように求めました:
SELECT
[database_id],
[file_id],
[ReadLatency] =
CASE WHEN [num_of_reads] = 0
THEN 0 ELSE ([io_stall_read_ms] / [num_of_reads]) END,
[WriteLatency] =
CASE WHEN [num_of_writes] = 0
THEN 0 ELSE ([io_stall_write_ms] / [num_of_writes]) END
FROM
sys.dm_io_virtual_file_stats (NULL, NULL)
WHERE
[file_id] = 2 OR [database_id] = 2;
GO
私の質問は、なぜ彼はio_stall_read_ms / num_of_reads
の代わりに io_stall_read_ms / num_of_bytes_read
平均を取得するため。 ms/byteはms/readよりも有益であると思います。これは、少なくとも部分的に、num_of_reads/writes列が実際に何を表しているのか理解していないと私に信じさせます。
BOLは言う
ファイルに対して発行された読み取りの数。
これはあまり役に立ちません。私は私が得ることができるどんな説明でもありがたいです。
I/Oシステムのレイテンシ(IOPSあたりの平均レイテンシはそれを示すものです)は、I/Oシステムが処理できる以上の負荷を追加しているかどうかを示します。このため、実行しているメディアと比較した場合の平均待機時間は、I/Oが問題であるかどうかについての良い指標となります。
経験則として、I/Oシステムに過負荷がかかっていない場合に予想される待ち時間は次のとおりです
それよりもレイテンシが高い場合は、I/Oシステムが処理できる以上の処理を要求されていることがわかります。