Ottimizzazione delle prestazioni di DBCC CHECKDB

È solitamente necessario che DBCC CHECKDB e le istruzioni correlate leggano dal disco alla memoria ogni pagina allocata, per consentirne il controllo. L'esecuzione di DBCC CHECKDB in un periodo di attività elevata del sistema comporta quindi una riduzione delle prestazioni di DBCC per due ragioni. Risulta innanzitutto disponibile una quantità inferiore di memoria e Motore di database di SQL Server viene forzato a eseguire lo spooling di alcuni dei dati interni di DBCC CHECKDB nel database tempdb. In secondo luogo, DBCC CHECKDB tenta di ottimizzare il modo in cui i dati vengono letti dal disco. Se lo stesso disco viene utilizzato da un carico di lavoro impegnativo, l'ottimizzazione risulterà notevolmente ridotta e comporterà quindi un'esecuzione più lenta.

Poiché il database tempdb risiede in un disco, il collo di bottiglia generato dalle operazioni di I/O durante la scrittura dei dati sul e dal disco influisce negativamente sulle prestazioni. Indipendentemente dall'attività del sistema, l'esecuzione di istruzioni DBCC CHECKDB su database di grandi dimensioni (rispetto alla quantità di memoria disponibile) determina lo spooling nel database tempdb. È quindi consigliabile posizionare il database tempdb in uno o più dischi veloci e separati dai database utente, ad esempio in un dispositivo RAID. Per ulteriori informazioni, vedere ALTER DATABASE (Transact-SQL) e RAID.

Nota

L'esecuzione di DBCC CHECKDB comporta l'esecuzione automatica di DBCC CHECKTABLE per ogni tabella del database, oltre che di DBCC CHECKALLOC e DBCC CHECKCATALOG. Non è quindi necessario eseguire separatamente tali istruzioni.