2010-02-09 86 views
1

我们在SQL Server中有一个大表,有近40,000.000条记录。它花了相当多的时间来运行查询。因此我们决定将所有旧的和过时的记录保留在那里,并将可用记录移到新表中并使用新记录。虽然它应该比旧表有几乎两倍的记录快,但问题的结果是别的。 尽管在旧表上执行查询需要近45秒,但在具有相同结构(键和索引)和记录数的半数的新表上,它需要30多分钟来运行相同的查询。我们在哪里犯错或错过了一些重要问题?为什么一张更大的桌子比新的更小的桌子快?

+1

您可以缩小问题范围并提供架构/索引和查询吗? – 2010-02-09 20:29:41

+0

幸运的是,或者不幸的是,我对所提到的数据库没有任何响应。我的一些朋友有这个问题。似乎他们已经忘记了重新统计新桌子,感谢贾斯汀尼斯纳和其他人的帮助。 – 2010-02-12 15:42:23

回答

7

您是否记得从较大的表中迁移索引并在新表上重新生成统计信息?

如果不是,从那里开始。这通常是这些情况下的问题(特别是对于大型表格)。

+1

+1用于重新生成统计信息。 – GrayWizardx 2010-02-09 20:35:02