扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:Baya Pavliashvili 来源:it专家网 2007年9月15日
关键字: 维护 SQL Server SQL Server 各版本 数据库
请注意,运行DBCC CHECKDB是一项非常消耗资源的操作。你应该在限制用户在数据库服务器上的活动的时候运行这个语句。
DBCC CHECKTABLE与DBCC CHECKDB相同,除了它是在一个单个的表、索引视图或者即使是一个索引上,而不是在整个数据库上。
DBCC CHECKALLOC检测某个数据库的磁盘空间分配结构的一致性。因为DBCC CHECKDB包括了与DBCC CHECKALLOC同样的检测,那么如果执行了CHECKDB的话就没有必要再执行DBCC CHECKALLOC了。实际上,我们推荐只使用DBCC CHECKALLOC,如果用DBCC CHECKDB或者 DBCC CHECKTABLE会报告说产生分配错误的话。
DBCC CHECKCONSTRAINTS在某个数据库中,检测某些特定的约束或者全部约束的一致性。DBCC CHECKCONSTRAINTS总是在当前数据库的上下文环境中执行。
注意,DBCC CHECKCONSTRAINTS并不进行磁盘或者文件级别的一致性检测;它只是确保外键定义的一致性,同时检测约束——仅仅是确认数据有效。如果你希望检测磁盘上表和索引的一致性,你应该执行DBCC CHECKDB或者在所有的表上执行DBCC CHECKALLOC和 DBCC CHECKTABLE的组合。
首先,为什么会发生约束违规?当数据库创建的时候,外键和一致性检测也许并不存在。开发人员和数据库管理员也许使用了WITH NOCHECK选项来创建约束,这个选项只能防止约束违规的进一步扩展,而不是会检测已经存在的数据。更进一步的说,通过外键链接的数据可能会过期并且从母表中删除,但是仍然会留在相关的表中,因为它在下级表中仍然具有相关记录。
DBCC CHECKCATALOG在某个数据库的系统表内或者之间检测一致性。很多类似DBCC CHECKCONSTRAINTS的命令都不会检测页面分配的一致性;它只是检测系统表中的数据。DBCC CHECKCATALOG报告错误意味着有些人手工从系统表中添加、修改或者删除记录了。如果你没有注意此类活动,那么你应该看紧你的安全措施了——看看谁具有系统管理员和数据库主任的全县,然后评估你的安全策略。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者