Freigeben über


Optimieren der DBCC CHECKDB-Leistung

DBCC CHECKDB und die zugehörigen Anweisungen müssen normalerweise jede zugeordnete Seite zum Prüfen vom Datenträger in den Arbeitsspeicher lesen. Daher beeinträchtigt das Ausführen von DBCC CHECKDB bei hoher Systemaktivität die DBCC-Leistung aus zwei Gründen: Erstens ist weniger Arbeitsspeicher verfügbar, und SQL Server Database Engine (Datenbankmodul) ist daher gezwungen, einige der internen Daten von DBCC CHECKDB in die tempdb-Datenbank zu spoolen. Zweitens wird durch DBCC CHECKDB versucht, den Lesevorgang für Daten vom Datenträger zu optimieren. Wenn bei einer hohen Arbeitsauslastung auch derselbe Datenträger verwendet wird, kann diese Optimierung nur stark reduziert erfolgen, wodurch die Ausführung verlangsamt wird.

Da sich die tempdb-Datenbank auf dem Datenträger befindet, führt der Engpass aufgrund der E/A-Operationen beim Schreiben und Lesen von Daten vom bzw. auf den Datenträger zu einer Leistungsreduzierung. Unabhängig von der Systemaktivität hat die Ausführung von DBCC für umfangreiche Datenbanken (relativ zum verfügbaren Arbeitsspeicher) zur Folge, dass Daten zur tempdb-Datenbank gespoolt werden müssen. Deshalb sollte die tempdb-Datenbank auf einem oder mehreren schnellen Datenträgern, beispielsweise einem RAID-Gerät, und gesondert von Benutzerdatenbanken platziert werden. Weitere Informationen finden Sie unter ALTER DATABASE (Transact-SQL) und unter RAID.

HinweisHinweis

Bei Ausführung von DBCC CHECKDB werden DBCC CHECKTABLE für jede Tabelle in der Datenbank sowie DBCC CHECKALLOC und DBCC CHECKCATALOG automatisch ausgeführt, sodass sie nicht mehr separat ausgeführt werden müssen.