web-dev-qa-db-ja.com

SQL Server:CheckDBは、あるデータベースでは十分に高速に実行され、別のデータベースでは非常に遅くなります。

これはあなたのためです、ポール! :-)

私には、2つのオフィスの場所に2つのデータベースがある顧客がいます。どちらもほぼ同じサイズ(約10 GB)で、どちらも同じプロのホスティングサイトでホストされています。つまり、与えるか取るかは同じです。

それでも、データベースAはメンテナンスプランのCheck database integrityステップを30分未満で完了しますが、データベースBは完了しません。DBAは3時間以上の実行後にプロセスを強制終了しました。

これらの手順は「営業時間外」に実行されているため、サーバー上で重要なアクティビティが発生することはありません。

説明はありますか?何をチェックするか、またはこの理由(およびそれを解決する方法)をどこで探すかについてのアイデアはありますか?エラーの報告などはありません。

1
marc_s

DBCCCHECKDBはDBチェックを実行しません。これは実際には、データベースのさまざまな側面を検証するコマンドのコレクションです。 BOLの関連部分

データベースでDBCCCHECKALLOCを実行します。データベース内のすべてのテーブルとビューでDBCCCHECKTABLEを実行します。データベースでDBCCCHECKCATALOGを実行します。

1つのDBに30分かかり、別のDBに3時間以上かかる場合は、CHECKTABLEコマンドである可能性が非常に高くなります。 Esp。データベースのサイズが劇的に異なる場合。

1
RyanB

申し訳ありませんが、遅いデータベースでデータベースの整合性チェックを実行し、終了させて​​ください。問題が見つかり、詳細を調べ始めた可能性があります。これは、okデータベースで実行するよりもはるかに時間がかかりました。

おそらく、コマンドラインからデータベースをチェックするシーケンスを実行します;)DBCC CHECKDBには、役立つ出力がいくつかあります;)メンテナンスプランのデバッグは少し難しいです。

0
TomTom