细化解析:带你轻松接触数据完整性验证

来源:岁月联盟 编辑:zhuzhu 时间:2007-10-16

Transact-SQL 有一组用于验证数据库完整性的 OBCC 语句。与 SQL Server 6.5 版中使用的 DBCC 语句相比,Microsoft® SQL Server™ 2000 和 SQL Server 7.0 版中的 DBCC 语句有几个改进:

◆运行这些语句的必要性显著减少了。SQL Server 中两个构架的改变将数据库的可靠性提高到可不必验证其完整性的程度:

◆数据库引擎具有快速失败的逻辑,以尽早检测出潜在的错误。这意味着错误不大可能持续很长时间,以至引发数据库中的问题。

◆数据库中的数据结构变得更简单。这意味着数据结构更易于管理,且减小了发生错误的可能性。

◆不必将 DBCC 验证语句作为正常备份或维护过程的一部分来运行。在进行重大改动前(例如,硬件或软件升级前,或硬件出现故障后)应将它们作为系统检查的一部分来运行。如果怀疑系统有任何问题,也应当运行这些语句。

◆SQL Server 2000 引入了一个新的 PHYSICAL_ONLY 选项,此选项仅检查很可能由硬件问题产生的问题类型,从而使 DBCC 语句运行得更快。如果怀疑数据库服务器的硬件有问题,则运行带 PHYSICAL_ONLY 的 DBCC 检查。

◆DBCC 语句本身的运行速度也显著加快。对复杂数据库的检查速度一般快 8 到 10 倍,而对某些个别对象的检查速度则快 300 倍以上。在 SQL Server 6.5 中,DBCC CHECKDB 串行地处理表。它首先检查每个表中的基础数据结构,然后检查个别的索引。这导致一种非常随机的读取模式。在 SQL Server 2000 中,DBCC CHECKDB 执行串行的数据库扫描,同时在扫描时对多个对象执行并行检查。当运行并行 DBCC 语句时,SQL Server 2000 还利用多个处理器的优点。

◆SQL Server 2000 DBCC 语句所要求的锁定级别比 SQL Server 7.0 低得多。DBCC 语句现在可与数据修改语句同时运行,从而大大降低了对使用数据库的用户的影响。

◆SQL Server 2000 DBCC 语句可以修复可能遇到的小问题。这些语句可以修复索引 B 树结构中的某些错误,或者修复某些分配结构中的错误。 (责任编辑:卢兆林)