web-dev-qa-db-ja.com

DBCC CHECKTABLE WITH TABLERESULTSが破損したテーブルでエラー8990のみを報告するのはなぜですか?

使用している本番VLDBがあります Paul RandalのガイダンスDBCC CHECKDBワークロードを1週間に分散します。 DBCC CHECKTABLE WITH TABLERESULTSDBCC CHECKALLOC WITH TABLERESULTSの結果をテーブルに記録していますが、DBCC CHECKTABLE WITH TABLERESULTSは、破損していないテーブルのテーブルごとに1行しか返していませんでした。これが最初の数列です。

Error   Level   State   MessageText      
2593    10      1       There are 57 rows in 1 pages for object "SmallTable".

しかし、テストデータベースの破損したテーブルでDBCC CHECKTABLE WITH TABLERESULTSを実行すると、 このメソッドで破損しました 、次のようになります。

Error   Level   State   MessageText
8939    16      98      Table error: Object ID 565577053, index ID 1, partition ID 72057594041335808, alloc unit ID 72057594046971904 (type In-row data), page (1:312). Test (IS_OFF (BUF_IOERR, pBUF->bstat)) failed. Values are 133129 and -4.
8928    16      1       Object ID 565577053, index ID 1, partition ID 72057594041335808, alloc unit ID 72057594046971904 (type In-row data): Page (1:312) could not be processed.  See other errors for details.
8980    16      1       Table error: Object ID 565577053, index ID 1, partition ID 72057594041335808, alloc unit ID 72057594046971904 (type In-row data). Index node page (0:0), slot 0 refers to child page (1:312) and previous child (0:0), but they were not encountered.
2593    10      1       There are 0 rows in 0 pages for object "tblWhoops".
8990    10      1       CHECKTABLE found 0 allocation errors and 3 consistency errors in table 'tblWhoops' (object ID 565577053).

エラー8990が破損していないテーブルで返されない理由について知りたいのですが? DBCC CHECALLOC WITH TABLERESULTSおよびDBCC CHECKDB WITH TABLERESULTSは、報告する割り当てエラーまたは整合性エラーがない場合にこの行を返します。

ボーナスの質問、なぜDBCC CHECKCATALOGWITH TABLERESULTの議論がないのですか?

1
scsimon

エラー8990が破損していないテーブルで返されない理由について知りたいのですが。

それが考えられていたとき、私は開発者の心にはありませんでしたが、私の推測はいくつかのノイズを減らすことです。エラーがなかったテーブルの要約を提供するのは冗長です。 Check *の出力はすでにかなり冗長であるため、エラーがないため、私のguessはその一部を削減します。

実際、メッセージを見ると、エラーが発生したときにのみ出力を提供したいと思っているような方法でラベルが付けられています。

There are 57 rows in 1 pages for object "SmallTable".
CHECKTABLE found 0 allocation errors and 0 consistency errors in table 'SmallTable' (object ID 645293745).

Check *コマンドは、特に(修正の可能性に加えて)調査結果を調査して報告するためのものであるため、どちらの方法でもこれについて議論することができます。本当に知るためには、元の開発者に、それを覚えているか、考えたことがあるかどうかを尋ねる必要があります。

ボーナスの質問ですが、DBCCCHECKCATALOGにWITHTABLERESULT引数がないのはなぜですか?

繰り返しますが、手がかりはありません。最良のguessは、その形式での出力を特に要求されることはありませんまたは最初の作成後、時間は割り当てられませんでした戻って追加します。

2
Sean Gallardy