Frequentemente precisamos monitorar a utilização de I/O e saber qual arquivo é o mais utilizado em uma base que possui vários arquivos é muito importante. Suponhamos que você isolou a tabela mais utilizada em 3 arquivos diferentes. Agora para saber qual destes arquivos é o mais utilizado ficou um pouco mais difícil. Para facilitar, podemos utilizar o script abaixo:
SELECT DB_NAME(DB_ID()) AS [Database Name],[file_id], num_of_reads, num_of_writes,
io_stall_read_ms, io_stall_write_ms,
CAST(100. * io_stall_read_ms/(io_stall_read_ms + io_stall_write_ms) AS DECIMAL(10,1)) AS [IO Stall Reads Pct],
CAST(100. * io_stall_write_ms/(io_stall_write_ms + io_stall_read_ms) AS DECIMAL(10,1)) AS [IO Stall Writes Pct],
(num_of_reads + num_of_writes) AS [Writes + Reads], num_of_bytes_read, num_of_bytes_written,
CAST(100. * num_of_reads/(num_of_reads + num_of_writes) AS DECIMAL(10,1)) AS [# Reads Pct],
CAST(100. * num_of_writes/(num_of_reads + num_of_writes) AS DECIMAL(10,1)) AS [# Write Pct],
CAST(100. * num_of_bytes_read/(num_of_bytes_read + num_of_bytes_written) AS DECIMAL(10,1)) AS [Read Bytes Pct],
CAST(100. * num_of_bytes_written/(num_of_bytes_read + num_of_bytes_written) AS DECIMAL(10,1)) AS [Written Bytes Pct]
FROM sys.dm_io_virtual_file_stats(DB_ID(), NULL) OPTION (RECOMPILE);
Vejam o resultado:
Espero que gostem.
4 comentários
Pular para o formulário de comentário ↓
Rafael Rodrigues
6 de junho de 2012 às 21:39 (UTC -3) Link para este comentário
Muito bom amigo! Mas vc poderia colocar um print do resultado para vermos na pratica!
Parabens!
Luiz Mercante
14 de junho de 2012 às 12:42 (UTC -3) Link para este comentário
Caro Rafael,
Segue o print, espero que tenha ajudado.
Abs.
Emerson S. Gaudencio
30 de setembro de 2012 às 13:10 (UTC -3) Link para este comentário
Muito boa essa dica. Parabéns. Vai ser de grande ajuda este script.
José Victor
3 de agosto de 2014 às 0:54 (UTC -3) Link para este comentário
Excelente dica!