Versões do SQL Server: 2005 e 2008.
Após um longo período sem publicar posts estou de volta... Venho publicando vários posts extensos que demandavam muito tempo de pesquisa e escrita, resultando neste longo período de inatividade. Resolvi publicar posts menores, mais simples, abortando temas relacionados ao meu dia a dia como consultor.
Uma instância do SQL Server pode ter vários bancos de dados, seria muito útil para o DBA ter informações estatísticas da atividade de cada banco. Um modo simples de obter estatísticas de IO é o uso da função dinâmica de sistema sys.dm_io_virtual_file_stats. Rode o script abaixo no seu servidor:
with IO_por_Banco as (
select db_name(database_id) as Banco,
cast(sum(num_of_bytes_read + num_of_bytes_written) / 1048576 as decimal(12,2))
as IO_Total_MB,
cast(sum(num_of_bytes_read) / 1048576 as decimal(12,2)) as IO_Leitura_MB,
cast(sum(num_of_bytes_written) / 1048576 as decimal(12,2)) as IO_Escrita_MB
from sys.dm_io_virtual_file_stats(NULL,NULL) as dm
group by database_id)
select row_number() over (order by IO_Total_MB DESC) as Ranking,
Banco, IO_Leitura_MB, IO_Escrita_MB,
IO_Total_MB, cast(IO_Total_MB / sum(IO_Total_MB) over() * 100 as decimal(5,2))
as Percentual
from IO_por_Banco
order by Ranking
O resultado traz o ranking por volume de IO do maior para o menor. O DBA pode utilizar estas informações para planejar a realocação de bancos entre servidores, ou em um projeto de consolidação.
Até o próximo post,
Landry.
Um comentário:
Olá, vc pode por gentileza me passar como podemos nos comunicar, estou precisando de uma ajuda em um cliente meu para recuperar um arquivo de duas semanas atras. obrigada! Tarcilla .. tarcillab@hotmail.com
Postar um comentário