科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道[SQL Server]维护为SQL Server保驾护航(2)

[SQL Server]维护为SQL Server保驾护航(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

每个新发布的SQL Server都具有越来越多的自我维护能力,但是“安全比抱歉好得多”的原则仍然是正确的:实际的数据库管理包含了对系统和用户数据库进行的周期性维护,这样才能在你的用户发现问题之前把它解决掉。

作者: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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章