트랜잭션이 많은 데이터베이스를 실행하고 있습니다 (평균 ~ 175k 트랜잭션 / 분, 시간당 거의 9M 레코드 추가 및 제거)
최근까지만해도 우리는 ~ 7.5 백만 건의 레코드가 추가 및 제거 되었기 때문에 그다지 큰 문제가되지 않았지만 최신 데이터가 증가함에 따라 고스트 정리는 정리를 유지할 수없는 것으로 보입니다. 테이블 / 인덱스에 사용되지 않은 공간.
며칠 전 우리는 16 개의 테이블 (대부분 2 개)에서 53GB의 '사용되지 않은 공간'에 도달하여 5 초에 한 번 실행되고 10 페이지가 넘는 고스트 정리 프로세스를 찾기 시작했습니다.
내 현재 솔루션은 이른 아침에 다음 명령의 세 스레드를 실행하는 것입니다.
DECLARE @2hours datetime = dateadd(hour,2,getutcdate())
WHILE getutcdate() < @2hours
BEGIN
DBCC FORCEGHOSTCLEANUP ('DBNAME') WITH NO_INFOMSGS
END
전날 밤부터 잔고를 따라 잡기 위해 (대부분의 삭제 작업이 수행 될 때)
기본 설정을 5 초 및 10 페이지에서 매 초마다 또는 20 페이지 이상으로 변경하도록 할 수있는 방법이 있는지 궁금합니다. 할 수있는 방법이 있습니까? 아니면 여러 정리 프로세스를 계속 진행하여 데이터 또는이를 지원할 수있는 다른 조치가있는 경우
재 인덱싱은 일주일에 한 번 이상 가장 영향을받는 인덱스에서 실행됩니다 (대부분은 격일로)
AlwaysOn 고 가용성 클러스터의 SQL Server 2012 Enterprise SP3_CU8 (내일 CU9로 업그레이드) 및 복제 (별도의 서버에 배포)