2010-10-15 130 views
5

我正在對日期以外的字段使用索引的表執行一些基於日期的大刪除查詢。我被告知,刪除這些索引,執行刪除,然後重新構建索引可能比僅對索引表執行刪除操作要快。是這樣嗎?可以刪除和重新創建索引加快SQL刪除?

我可以看到爲什麼在沒有索引的情況下實際刪除記錄的速度會更快,但我覺得以後不得不重建它的行爲會否定任何速度優勢。

回答

1

當決定先刪除索引時,必須比較刪除期間維護索引的成本(或時間)與刪除後重新創建索引的成本。兩個最有影響力的因素是表格中的行數和被刪除的數字或行數。

當行數很少或要刪除的行數很少時,首先刪除索引不會使您受益。但是,如果您有大表和要刪除的行數多,則更新索引的成本會增加,直到達到維護索引成本高於刪除並重新創建索引的成本點。

由於您表明您正在進行多次大型刪除,我的預感是您有一種情況,即刪除和重新創建索引會有所幫助。

0

如果你的索引有一個不好的填充因子,那麼我相信它會。