sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server Performance File IO-statistik

Hej,

Disk IO-statistik är mycket avgörande för SQL Server-prestandakriterier.

Varje transaktion i SQL Server gör att IO tar data från den fysiska disken till bufferten och precis tvärtom när transaktionen är klar, kommer all relaterad data att överföras från bufferten till den fysiska disken.

Så diskhastighet och IO-statistik är mycket viktiga för prestandakriterier.

För att se IO-statistik och följande information kan du köra nedanstående skript.

  • Maskinnamn
  • Inkomstnamn
  • SQL-servernamn
  • Databasnamn
  • Logiskt namn
  • Fysiskt namn
  • Diskenhet
  • Filtyp
  • Stat
  • Storlek på disk
  • Tillväxt
  • Antal läsningar
  • Antal skrivningar
  • 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;




  1. mysqldump bästa praxis:Del 1 – MySQL-förutsättningar

  2. Kan du komma åt värdet för automatisk inkrement i MySQL inom ett uttalande?

  3. Hur LIKE-operatören fungerar i MySQL

  4. Hur man listar filer i en mapp med SQL Server