Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
現在のデータベース、または現在のデータベース内にある単一のテーブルやマテリアライズドビューまたはインデックスを検証します。
VALIDATE { CHECKSUM | DATABASE }
VALIDATE { TABLE [ owner.]table-name | MATERIALIZED VIEW [ owner.]materialized-view-name } [ WITH EXPRESS CHECK ]
VALIDATE { INDEX index-name | [ INDEX ] FOREIGN KEY role-name | [ INDEX ] PRIMARY KEY } ON [ owner.]object-name
object-name : table-name | materialized-view-name
VALIDATE TEXT INDEX index-name ON [ owner.]table-name
VALIDATE CHECKSUM 文は、データベース上で各ページのチェックサムの検証を実行するときに使用します。VALIDATE CHECKSUM 文によって、データベースページがディスク上で変更されていないことを確認します。チェックサムを有効にしてデータベースを作成すると、各データベースページがディスクに書き込まれる前に、そのページのチェックサムが計算されます。VALIDATE CHECKSUM は、各データベースページをデータベースサーバのキャッシュからではなく、ディスクから読み込み、各ページのチェックサムを計算します。ページに対して計算されたチェックサムが、そのページについて格納されているチェックサムと一致しない場合は、エラーが発生し、無効なページに関する情報がデータベースサーバメッセージウィンドウに表示されます。VALIDATE CHECKSUM 文は、チェックサムが無効になっているデータベースにはお勧めしません。
VALIDATE DATABASE 文を使用して、フリーマップでページが割り当て済みかフリーかが正しく識別され、孤立している BLOB がないことを確認します。VALIDATE DATABASE は、チェックサム検証を実行して、各データベースページが正しいオブジェクトに所属することを検証します。たとえば、テーブルページ上でテーブル ID によって、定義がテーブルページのセットに最新のテーブルを含む有効なテーブルが識別されなければなりません。VALIDATE DATABASE 文はページをサーバのキャッシュに順番に転送します。このため、検証時に、データベースサーバはキャッシュに転送されたページの内容とチェックサムを常に検証します。データベースクリーナーが実行している間にデータベースの検証を開始すると、データベースクリーナーの実行が終了するまで検証は実行されません。
VALIDATE TABLE 文は、ベーステーブル内の一連のローと値が各インデックスに含まれる一連のローと値に一致するかどうかを確認して、指定されたテーブルとそのすべてのインデックスを検証します。また、すべてのテーブルの BLOB を移動して、BLOB のアロケーションマップを検証し、孤立した BLOB を検出します。また、VALIDATE TABLE 文は、すべてのテーブルのインデックスページの物理構造を確認し、インデックスハッシュ値の順序、インデックスの一意性要件も (指定されている場合は) 検査します。外部キーインデックスの場合、WITH EXPRESS CHECK 句が指定されていなければ、プライマリキーテーブルの各値が検索されて、参照整合性制約がそのまま残っていることが確認されます。VALIDATE TABLE 文は、VALIDATE DATABASE と同じようにデータベースサーバのキャッシュを使用するため、データベースサーバもテーブルとそのインデックスで使用されるすべてのページのチェックサムと基本的な妥当性を検査します。
VALIDATE INDEX 文は VALIDATE TABLE 文と同じ操作を実行しますが、指定されたインデックスのみ検証して、基になるテーブルやその他のインデックスは検証しない点が異なります。外部キーインデックスの場合、WITH EXPRESS CHECK 句が指定されていなければ、プライマリキーテーブルの各値が検索されて、参照整合性制約がそのまま残っていることが確認されます。WITH EXPRESS CHECK 句を指定すると、参照整合性検査が無効になるため、パフォーマンスが大幅に向上する場合があります。指定されたインデックスが外部キーインデックスでない場合、WITH EXPRESS CHECK は効果がありません。
VALIDATE TEXT INDEX 文を使用して、インデックス内の単語の位置情報が正常であることを確認できます。位置情報が維持されていない場合は、エラーが生成され、テキストインデックスを再作成する必要があります。テキストインデックスが自動または手動のいずれかの場合、REFRESH TEXT INDEX 文を実行して、テキストインデックスを再作成できます。
生成されたエラーが即時テキストインデックスに関わる場合、即時インデックスを削除して、新しいインデックスを作成する必要があります。
テーブルまたはデータベース全体の検証は、データベースに変更を加えている接続がない場合に実行してください。そうしないと、実際に破損していなくても、何らかの形でデータベースが破損したことを示すエラーがレポートされます。
VALIDATE ANY OBJECT システム権限が必要です。
なし
SQL/2008 ベンダー拡張。
次の例では、Products テーブルを検証します。
VALIDATE TABLE GROUPO.Products;