web-dev-qa-db-ja.com

tempdb上のDBCC checkdb

TempdbでDBCC CheckDBを実行することをお勧めしますか?はいの場合、誰かが理由を挙げてください。これは、SQL Serverのどのバージョンでも可能です。私が持っているのはSQL Server 2017です。

5
SQLPRODDBA

エリックの答えを補完する

Tempdbに対してDBCC CHECKDBを実行しても、割り当てやカタログのチェックは実行されず、テーブルチェックを実行するには共有テーブルロックを取得する必要があります。これは、パフォーマンス上の理由から、データベーススナップショットがtempdbで使用できないためです。これは、必要なトランザクションの一貫性が得られないことを意味します。

Tempdbに対してcheckdbを実行することを考えることができる唯一の理由は、tempdbがひどく破損したときに、それを使用しているセッションでエラーが発生し始めることです。

また、tempdbが破損した場合、ユーザーデータベースmightも破損している可能性があります。

Tempdbでcheckdbを実行していません。

4
Kin Shah

私はここで別の見方をしています。システムやユーザーの期間に関係なく、すべてのデータベースに対してcheckdbを実行する必要があります。理由は、破損がある場合に情報を保存するデータベースであるため、SQlサーバーを再起動してtempdbクリアされ、「かもしれない」破損はなくなりました。私もあなたに読んでもらいたい Brent Ozar blog

Q:TempDBに対してCheckDBを実行する必要がありますか?

はい、そうするべきです。 CheckDBは、TempDBに対して他のデータベースに対して実行できるすべてのチェックを実行することはできません(出力から、スナップショットを作成できないことがわかります)が、TempDBに対してさまざまなチェックを実行でき、実行をサポートしています。 。スキップしないでください! master、model、msdb、tempdb、およびすべてのユーザーデータベースを確認する必要があります。

Tempdbでcheckdbを実行する必要がありますか?いいえ、必要に応じて回避することはできません。

Tempdbデータベースでcheckdbを実行しないでください。いいえ、実行する必要があります。省略しないでください。

1
Shanky