اسکریپتی برای بررسی Database Latency در Sql server
امروز از سری مقالات اس کیو ال سرور در پرفورمنس میخواهیم یک اسکریپت جدید برای پیدا کردن database latency بررسی کنیم.
بیشتر سازمانها برای فایلهای دیتابیسی از درایو های مختلفی استفاده میکنند که ممکن هست از لحاظ فیزیکی هم متفاوت باشند. ما امروز با استفاده از اسکریپت زیر Latency فایلهای دیتابیسی را در این دیسکها بررسی میکنیم.
SELECT DB_NAME(mf.database_id) AS [Database Name], mf.physical_name [Physical Name], num_of_reads, num_of_bytes_read, io_stall_read_ms, num_of_writes, num_of_bytes_written, io_stall_write_ms, io_stall, size_on_disk_bytes FROM sys.dm_io_virtual_file_stats(null,null) AS vfs INNER JOIN sys.master_files AS mf ON mf.database_id = vfs.database_id and mf.file_id = vfs.file_id -- ORDER BY io_stall DESC
اسکریپت بالا بهت تمامی دیتابیسهای یک instance بهمراه IO_READ , IO_WRITE میده و ستون io_stall بهت اطلاعات اضافی راجب Io میده.
وقتی که پیدا کردی کدوم فایل بیشترین io_stall داره میتونی برای بهبود پرفورمنس کارهای زیر انجام بدی:
- میتونی حجم کار اون فایل کم کنی
- میتونی پرفرمنس کوئریهایی که روی اون فایل دیتابیسی هست بهبود بدی
- اون فایل به دیسک پرسرعتتری منتقل کنی