我正在帮助一个用ASP.NET编写的垂直市场web应用程序,它使用Server 2005作为后端。客户端在应用程序中存在性能问题,供应商的支持对于解决这个问题没有多大帮助。所以客户给我带了一双全新的眼睛来观察问题。在对系统和硬件进行一些基本检查时,我注意到SQL Server中有一个“维护”作业,它每15分钟运行一次,执行DBCC,然后执行事务日志备份。这项工作大约需要6分钟才能在办公时间内完成。
当我询问供应商的支持人员这是否有必要时,我们能否将DBCC重新安排为每晚一次,反应是“这是专有信息,什么都不要碰”。
我基本上想了解的是。是否有理由每15分钟运行一次?此外,作业运行时明显的影响,否则运行此命令会如何影响系统性能?例如,它是否会导致Server松掉内存中的内容?
发布于 2010-03-04 15:13:46
DBCC确实会影响系统性能- CPU、磁盘I/O和内存都会受到影响。下面是Microsoft的一些文档,其中概述了DBCC如何影响系统的性能:
http://msdn.microsoft.com/en-us/library/aa937548(SQL.80).aspx
http://msdn.microsoft.com/en-us/library/ms175515(SQL.90).aspx
微软的一般建议是,它应该在较低的使用时间运行-所以一夜之间或类似的-而不是每15分钟一天。
发布于 2010-03-04 15:12:13
DBCC将显示数据库中的任何损坏问题。除非存在底层硬件或其他问题,让人相信在正常的应用程序操作下会发生这种情况,否则我不知道为什么会发生这种情况。
性能问题是响应还是输入?底层数据模型是什么样子的?您对常见的查询类型有什么感觉吗?适当的索引( WHERE子句中没有索引的列)?
https://serverfault.com/questions/119125
复制相似问题