파일 증가 이벤트 식별


9

포트폴리오에서 오랜 기간 동안 확장 된 기본 자동 증가 설정 (1MB 또는 10 % 단위)으로 생성 된 많은 DB를 발견하고 있습니다. 각 DB 파일에 대한 외부 조각화 양을 측정하려는 경우 DB 파일의 크기가 몇 번 (자동 증가 또는 수동으로) 수정되었는지 메타 데이터에서 얻을 수 있습니까? 명확히하기 위해 인스턴스 재시작 이후뿐만 아니라 메타 데이터에서 DB 수명 동안 DB 파일 수정 이력을 얻을 수 있습니까?


1
이들이 어느 시점에서 축소되지 않는 한, 자동 증가 설정에 따라 초기 크기에서 현재 크기까지 간단한 계산이되어야합니까?
Martin Smith

자동 증가로만 수정 한 경우 동의하지만 자동 증가 설정 외부에서 수동 수정이 수행 된 것을 볼 수 있습니다.
MattyZDBA 2019

답변:


20

사용 가능한 경우 기본 추적에서 자동 증가 이벤트 정보를 얻을 수 있습니다.

select distinct
    ei.eventid,
    e.name
from sys.fn_trace_geteventinfo(1) ei
inner join sys.trace_events e
on e.trace_event_id = ei.eventid
where name like '%grow%';

이를 통해 기본 추적에 데이터 파일 자동 증가로그 파일 자동 증가 이벤트 캡처가 있음을 알 수 있습니다. 해당 인스턴스에서 기본 추적이 사용 가능한지 확인하려면 다음을 수행하십시오.

exec sp_configure 'default trace enabled';
go

참고 : 이것은 고급 구성 옵션 show advanced options이므로을 통해이 구성 옵션을 보려면 1로 설정해야합니다 sp_configure. 또한 이 두 이벤트는 파일이 수동으로 커지면 트리거되지 않습니다 .

다음은 이러한 이벤트를 가져 오는 빠른 샘플 쿼리입니다.

select
    te.name as event_name,
    tr.DatabaseName,
    tr.FileName,
    tr.StartTime,
    tr.EndTime
from sys.fn_trace_gettable('<Trace Path>', 0) tr
inner join sys.trace_events te
on tr.EventClass = te.trace_event_id
where tr.EventClass in (92, 93)
order by EndTime;

그리고 당신은 <Trace Path>시스템 기능에서 얻을 수 있습니다 sys.fn_trace_getinfo:

select *
from sys.fn_trace_getinfo(1);

이것은 좋은 정보입니다. 이러한 이벤트 중 일부는 기본 추적에서 만료되었을 수 있습니다.
Nic

당연하지만, 실제로 적절한 감사를 수행하여 OP가이를 수행 할 수있는 유일한 기본 모니터링이라고 생각합니다.
토마스 스트링거
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.