DBCC CHECKDB 성능 최적화

DBCC CHECKDB 및 관련 문은 일반적으로 디스크에서 메모리로 할당된 각 페이지를 읽어야 확인할 수 있습니다. 시스템에 작업이 많은 경우 DBCC CHECKDB를 실행하면 다음 두 가지 이유 때문에 DBCC 성능이 저하될 수 있습니다. 첫 번째 이유는 사용 가능한 메모리가 부족하여 SQL Server 데이터베이스 엔진이 DBCC CHECKDB의 내부 데이터 중 일부를 tempdb 데이터베이스로 스풀링하기 때문입니다. 두 번째 이유는 DBCC CHECKDB가 디스크에서 데이터를 읽는 방식을 최적화하려고 하기 때문입니다. 또한 동일한 디스크를 사용하는 작업이 집중되는 경우 최적화가 상당히 저하되어 실행 속도가 느려지게 됩니다.

tempdb 데이터베이스는 디스크에 위치하므로 데이터가 디스크에서 기록될 때 I/O 작업의 병목 상태로 인해 성능이 저하됩니다. 시스템 동작에 관계없이 사용할 수 있는 메모리 크기에 비해 상대적으로 큰 데이터베이스에 대해 DBCC CHECKDB를 실행하면 tempdb 데이터베이스로 스풀링이 이루어집니다. 따라서 tempdb 데이터베이스는 사용자 데이터베이스와는 별도로 RAID 장치 같은 고속 디스크에 있어야 합니다. 자세한 내용은 ALTER DATABASE(Transact-SQL)RAID를 참조하십시오.

[!참고]

DBCC CHECKDB를 실행하면 DBCC CHECKALLOC 및 DBCC CHECKCATALOG 뿐만 아니라 데이터베이스의 각 테이블에 대한 DBCC CHECKTABLE이 자동으로 실행되므로 이를 별도로 실행할 필요가 없습니다.