sql >> Database >  >> RDS >> Sqlserver

SQL Server-prestatiebestand IO-statistieken

Hallo,

Disk IO-statistieken zijn erg cruciaal voor de prestatiecriteria van SQL Server.

Elke transactie in SQL Server zorgt ervoor dat IO gegevens van de fysieke schijf naar de buffer brengt en juist het tegenovergestelde wanneer de transactie is voltooid, worden alle gerelateerde gegevens van de buffer naar de fysieke schijf overgebracht.

Schijfsnelheid en IO-statistieken zijn dus erg belangrijk voor prestatiecriteria.

Om IO-statistieken en de volgende informatie te zien, kunt u het onderstaande script uitvoeren.

  • Machinenaam
  • Instantienaam
  • SQL-servernaam
  • Databasenaam
  • Logische naam
  • Fysieke naam
  • Schijfstation
  • Bestandstype
  • Staat
  • Grootte op schijf
  • Groei
  • Aantal keer gelezen
  • Aantal schrijfbewerkingen
  • 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. Gebruik MySQL relationele databases op CentOS 5.

  2. Hoe maak je een spilquery in sql-server zonder aggregatiefunctie?

  3. Een database documenteren

  4. Een lijst met gegevenstypen retourneren in SQL Server (T-SQL)