Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
用于校验当前数据库,或校验当前数据库中的单个表或实例化视图。
VALIDATE { TABLE [ owner.]table-name | MATERIALIZED VIEW [ owner.]materialized-view-name } [ WITH EXPRESS CHECK ]
VALIDATE { CHECKSUM | DATABASE }
VALIDATE { INDEX index-name | [ INDEX ] FOREIGN KEY role-name | [ INDEX ] PRIMARY KEY } ON [ owner.]object-name }
object-name : table-name | materialized-view-name
WITH EXPRESS CHECK 除缺省检查外,还检查表或实例化视图中的行数与索引中的条目数是否匹配。此选项不为每个行执行单独的索引查找,也不执行校验和校验。当使用较小的高速缓存校验大数据库时,此选项可以显著提高校验性能。
表的校验包括校验和校验,以及表中的行数与该表关联的每个索引中的行数相匹配的校验。当指定 WITH EXPRESS CHECK 时,将不执行校验和校验。
VALIDATE DATABASE 语句校验数据库中的所有表页是否属于正确的对象。VALIDATE DATABASE 还执行校验和校验,但不校验索引或检查数据的正确性。如果在数据库清理程序运行期间启动数据库校验,该校验需等待数据库清理程序结束运行后才能运行。请参见sa_clean_database 系统过程。
使用 VALIDATE CHECKSUM 语句在数据库上执行校验和校验。VALIDATE CHECKSUM 语句可确保数据库页没有在磁盘上被修改。创建启用了校验和的数据库时,在将每一数据库页写入磁盘前会为其计算校验和。VALIDATE CHECKSUM 从磁盘读取每个数据库页,然后为每页计算校验和。如果为页面计算出的校验和与存储的该页面的校验和不匹配,就会发生错误,并在数据库服务器消息窗口中显示关于该无效页的信息。VALIDATE CHECKSUM 语句在禁用了校验和的数据库上也很有用,因为重要数据库页仍然包括校验和。
VALIDATE CHECKSUM 语句用于在表或实例化视图上校验索引(包括索引统计信息)。VALIDATE INDEX 语句可确保索引中引用的各行确实存在。对于外键索引,还要确保主表中存在相应的行。这种检查补充了由 VALIDATE TABLE 语句执行的有效性检查。VALIDATE INDEX 语句还校验为指定索引报告的统计信息是否准确。如果不准确,将产生一个错误。
应在没有任何连接对数据库进行更改时对表或整个数据库进行校验;否则,可能会报告错误,指出某种形式的数据库损坏,而实际上并没有任何损坏。
在执行此语句期间,可以请求进度消息。请参见progress_messages 选项。
也可以使用 Progress 连接属性确定语句的执行进度。请参见Progress 连接属性。
DBA 或 VALIDATE 特权
无。
SQL/2008 服务商扩充。