こんにちは、
ディスクIO統計は、SQLServerのパフォーマンス基準にとって非常に重要です。
SQL Serverのすべてのトランザクションは、IOを使用して物理ディスクからバッファにデータを移動します。トランザクションが完了すると、その逆に、関連するすべてのデータがバッファから物理ディスクに転送されます。
したがって、ディスク速度とIO統計は、パフォーマンス基準にとって非常に重要です。
IO統計と以下の情報を確認するには、以下のスクリプトを実行できます。
- マシン名
- インスタンス名
- SQLServer名
- データベース名
- 論理名
- 物理的な名前
- ディスクドライブ
- ファイルの種類
- 州
- ディスク上のサイズ
- 成長
- 読み取り数
- 書き込み数
- IO_stall_read_ms
- IO_stall_write_ms
select serverproperty('MachineName') 'machine_name' ,isnull(serverproperty('InstanceName'),'mssqlserver') 'instance_name' ,@@SERVERNAME 'sql_server_name' ,DB_NAME(mf.database_id) 'database_name' ,mf.name 'logical_name' ,mf.physical_name 'physical_name' ,left(mf.physical_name,1) 'disk_drive' ,mf.type_desc 'file_type' ,mf.state_desc 'state' ,case mf.is_read_only when 0 then 'no' when 1 then 'yes' end 'read_only' ,convert(numeric(18,2),convert(numeric,mf.size)*8/1024) 'size_mb' ,divfs.size_on_disk_bytes/1024/1024 'size_on_disk_mb' ,case mf.is_percent_growth when 0 then cast(convert(int,convert(numeric,mf.growth)*8/1024) as varchar) + ' MB' when 1 then cast(mf.growth as varchar) + '%' end 'growth' ,case mf.is_percent_growth when 0 then convert(numeric(18,2),convert(numeric,mf.growth)*8/1024) when 1 then convert(numeric(18,2),(convert(numeric,mf.size)*mf.growth/100)*8/1024) end 'next_growth_mb' ,case mf.max_size when 0 then 'NO-growth' when -1 then (case mf.growth when 0 then 'NO-growth' else 'unlimited' end) else cast(convert(int,convert(numeric,mf.max_size)*8/1024) as varchar)+' MB' end 'max_size' ,divfs.num_of_reads ,divfs.num_of_bytes_read/1024/1024 'read_mb' ,divfs.io_stall_read_ms ,divfs.num_of_writes ,divfs.num_of_bytes_written/1024/1024 'write_mb' ,divfs.io_stall_write_ms from sys.master_files as mf left outer join sys.dm_io_virtual_file_stats(null,null) as divfs on mf.database_id=divfs.database_id and mf.file_id=divfs.file_id;