AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 125607
Accepted
Henrik Staun Poulsen
Henrik Staun Poulsen
Asked: 2016-01-08 23:47:19 +0800 CST2016-01-08 23:47:19 +0800 CST 2016-01-08 23:47:19 +0800 CST

sp_Blitz 在 MDS 数据库上说“页面验证不是最佳的”

  • 772

我在我们的测试数据库服务器上运行了 sp_blitz(版本 45)。它抱怨

数据库 [MDS] 具有用于页面验证的 TORN_PAGE_DETECTION。SQL Server 可能更难识别存储损坏并从中恢复。考虑改用 CHECKSUM。

但这是微软的数据库。
将 Page Verification 改为 CheckSum 是否明智?

还是应该等待微软发布新版本的 MDS?

sql-server sp-blitz
  • 1 1 个回答
  • 910 Views

1 个回答

  • Voted
  1. Best Answer
    Shanky
    2016-01-08T23:58:20+08:002016-01-08T23:58:20+08:00

    我建议您遵循sp_blitz推荐的内容。您可以将选项更改为CHEKSUM。校验和可能能够检测到比 torn_page 更多的问题。

    Torn page 允许您检测页面是否已成功写入磁盘。它不会检查页面内的不一致之处。而校验和执行更彻底的检查。说了这么多你一定知道there is no replacement of good backup and you must (if possible) run dbcc checkdb every day。

    保罗所说的,引用自这个 SQLServercentral 链接

    差异小得无法估量——它所做的只是从 16 个扇区中的每一个中获取前两位,将它们存储在页眉中,然后将交替位模式写入每个扇区的两位中。再次阅读页面时相反。与页面校验和通过读取整个页面并将内容添加到“校验和”所做的相比,几乎没有什么。

    但是,残页检测不会检测到扇区内的损坏 - 只有在写入以某种方式失败时才会检测到。从 2005 年开始,您应该始终启用页面校验和以获得此额外好处 - 1-2% 的 CPU 应该不是问题(否则您会遇到其他问题)。

    一些关于此的博客文章:How to tell if the IO subsystem is caused corruptions?和存储引擎内部:打开页面校验和是否会丢弃任何损坏的页面保护?。

    以下是BOL 文件的内容

    使用 PAGE_VERIFY 选项时请考虑以下要点: • 默认值为 CHECKSUM。

    • 当用户或系统数据库升级到SQL Server 2005 或更高版本时,PAGE_VERIFY 值(NONE 或TORN_PAGE_DETECTION)将保留。We recommend that you use CHECKSUM

    在早期版本的 SQL Server 中,PAGE_VERIFY 数据库选项针对 tempdb 数据库设置为 NONE,并且无法修改。在 SQL Server 2008 及更高版本中,对于新安装的 SQL Server,tempdb 数据库的默认值为 CHECKSUM。升级安装的 SQL Server 时,默认值保持为 NONE。 The option can be modified. We recommend that you use CHECKSUM for the tempdb database.

    注意:如果启用页面校验和,则不会为数据库的整个页面启用它。没有为所有页面设置此选项的过程。当某个页面将是read in memory, changed, and written back磁盘校验和时,将为该页面启用校验和。因此,您将不得不执行索引重建之类的操作,以将尽可能多的页面带入内存。Paul Randal 有与校验和相关的神话部分,请阅读。在 SQL Server 2005 和 2008 上创建的数据库将自动启用页面校验和,除非用户更改模型数据库中的设置。

    • 11

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve