Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Thống kê IO Tệp Hiệu suất Máy chủ SQL

Xin chào,

Thống kê IO trên đĩa rất quan trọng đối với tiêu chí Hiệu suất máy chủ SQL.

Mọi giao dịch trong SQL Server làm cho IO đưa dữ liệu từ đĩa vật lý vào bộ đệm và ngược lại khi Giao dịch hoàn tất, tất cả dữ liệu liên quan sẽ chuyển từ bộ đệm sang đĩa vật lý.

Vì vậy, tốc độ đĩa và số liệu thống kê IO rất quan trọng đối với tiêu chí Hiệu suất.

Để xem số liệu thống kê IO và thông tin sau, bạn có thể thực thi tập lệnh bên dưới.

  • Tên máy
  • Tên phiên bản
  • Tên máy chủ SQL
  • Tên cơ sở dữ liệu
  • Tên lôgic
  • Tên thực
  • Ổ đĩa
  • Loại tệp
  • Trạng thái
  • Kích thước trên đĩa
  • Tăng trưởng
  • Số lần đọc
  • Số lần viết
  • 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách chỉ định vị trí của tệp dữ liệu và tệp nhật ký khi tạo cơ sở dữ liệu trong SQL Server

  2. Sự khác biệt giữa bảng tạm thời và biến bảng trong SQL Server là gì?

  3. Cách thay đổi cấu hình thư cơ sở dữ liệu mặc định cho người dùng trong SQL Server (T-SQL)

  4. Chuyển đổi ‘datetime2’ thành ‘datetime’ trong SQL Server (Ví dụ T-SQL)

  5. Làm thế nào để tìm mức lương tối đa thứ ba hoặc thứ n từ bảng lương?