2010-02-09 46 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

相關問題