在我的公司,我们已经使用 SQL Server 很长一段时间了,并且遵循了推荐的升级路径。我注意到,在过去几年中,我花在重建索引和进行常规功能维护上的时间比运行 SQL Server 2000 时多得多。我意识到我们的应用程序已经发生了很大变化,所以这种差异可能是我自己造成的。但是,我相当肯定,对于我们来说,SQL Server 2000 在“无需太多帮助”的情况下“运行”得比新版本的 SQL Server 好得多。
我的问题是,是否有人可以确认或否认这个观点,如果这是真的,那么原因是什么。我现在每晚都在重建索引,而以前我从来不用这样做。谢谢您的帮助。
答案1
除了我撰写的 JGurtz 上面引用的 TechNet 杂志文章之外,您的问题要么是碎片化,要么是统计数据。
如果 perf 逐渐变慢,则表明存在碎片。如果 perf 突然下降,则表明其统计数据失衡并导致查询计划更改。
如果存在碎片,请考虑将键更改为不会导致随机插入的内容,或使用 FILLFACTOR。Google 搜索“Paul Randal FILLFACTOR”以获取更多信息。
如果是统计数据,那么更新统计数据而不是重建索引可能是一种更有效的解决方案,并且消耗更少的资源。
谢谢
答案2
如果说 2005 和更新版本在“自我运行”方面表现更好的话,但我从来都不会这么说,因为所有 SQL 服务器都需要维护。这只是它的本质...
以下是一些与索引相关的资源:
http://performance.sqlpass.org/PresentationArchive.aspx看看 2011 年 1 月、2 月、3 月的会谈
http://technet.microsoft.com/en-gb/magazine/2008.08.database.aspx