sexta-feira, 6 de julho de 2018

Eventos de auto-growth dos datafiles

Quando os datafiles estão configurados com propriedade "auto-growth" ou auto-crescimento, é possível identificar quando os eventos de expansão do arquivo ocorrem com o script abaixo.

Quando a quantidade de eventos for muito grande, pode gerar fila de espera de I/O, e a sugestão é colocar um tamanho maior como parâmetro de crescimento.

Como recomendação, não utilizar percentuais, mas sim valores fixos, como 64MB por exemplo.

declare @curr_tracefilename varchar(500);
declare @base_tracefilename varchar(500);
declare @indx int;

select @curr_tracefilename = path from sys.traces where is_default = 1;
set @curr_tracefilename = reverse(@curr_tracefilename);
select @indx  = patindex('%\%', @curr_tracefilename) ;
set @curr_tracefilename = reverse(@curr_tracefilename) ;
set @base_tracefilename = left( @curr_tracefilename,len(@curr_tracefilename) - @indx) + '\log.trc'; 
select
servername as [sql_instance],
databasename as [database_name],
filename as [logical_file_name],
(duration/1000) as [duration_ms],
convert(varchar(50),starttime, 100) as [start_time],
cast((integerdata*8.0/1024) as decimal(19,2)) as [change_in_size_mb]
from ::fn_trace_gettable(@base_tracefilename, default)
where eventclass between 92 and 95
order by databasename, starttime desc;
go

Abcs!

Nenhum comentário: