我遇到过一个生产 SQL Server 2008 框,它有相当多的数据库,其中 PAGE_VERIFY 选项设置为 NONE。我要将 PAGE_VERIFY 选项设置为 CHECKSUM。如果我理解正确,我必须为 CHECKSUM 重建现有索引以影响它们。另外,如果我重建聚集索引,非聚集索引也将被重建。
- 如果我不能立即重建现有索引,它们会发生什么情况?
- 在不重建的情况下设置 CHECKSUM 后,现有索引是否仍然可用?
谢谢!
我遇到过一个生产 SQL Server 2008 框,它有相当多的数据库,其中 PAGE_VERIFY 选项设置为 NONE。我要将 PAGE_VERIFY 选项设置为 CHECKSUM。如果我理解正确,我必须为 CHECKSUM 重建现有索引以影响它们。另外,如果我重建聚集索引,非聚集索引也将被重建。
谢谢!
“另外,如果我重建聚集索引,非聚集索引也将被重建。” -- 如果重建聚集索引,则不会重建非聚集索引,请参阅 Paul 的博客文章 -- http://www.sqlskills.com/blogs/paul/indexes-from-every-angle-what -happens-to-non-clustered-indexes-when-the-table-structure-is-changed/ ——尽管它说的是 2005 年,但据我所知,对于任何版本都是如此。1. 什么都不会发生 2. 可用
也可以在 Paul 的博客 Myth a Day 中阅读——http: //www.sqlskills.com/blogs/paul/a-sql-server-dba-myth-a-day-1730-page-checksums/
正如您和 Jon 所补充的那样——有 2 种方法(来自 Paul 的博客): 1. 没有进程、背景或其他方式可以在每个页面上放置页面校验和。这是一个大麻烦(技术术语 :-),因为这意味着您必须执行索引重建或其他数据大小操作才能真正在页面上放置页面校验和。2. 页面校验和仅在页面被读入内存、更改然后写回磁盘时才会放在页面上。