2013-05-08 12 views
1

Oracle將作爲DataStore推出一款全新的應用程序,該產品將在Production中推廣。數據庫使用CBO我已經識別了一些列來做索引。我預計6個月後,特定表格中的記錄總數將達到400萬。之後,將添加很少的記錄,並且在索引列的記錄中不會有任何更新。我的意思是大多數更新將在NonIndexed列中。何時適合在Oracle中創建索引?

建議現在創建索引嗎?或者我需要等待幾個月?

+5

看不到任何推遲索引創建的理由 – 2013-05-08 03:10:30

+0

您使用的是哪一個確切的Oracle版本? – 2013-05-08 08:35:38

回答

1

如果表需要索引,那麼在表中的行數超出可合理保留高速緩存的範圍之後,將會產生很多糟糕的性能(全表掃描+實際I/O)。假設是20000行。我們將其稱爲幻數。你在一週的生產中打了20000行。之後,隨着更多行的添加,表上的查詢和更新平均會逐漸變慢。

您可能擔心插入帶有索引字段的新行的開銷。這是一次性打擊。在延遲添加索引時,您可以針對數十種查詢和更新進行交易。

這種折衷主要是贊成現在添加索引。特別是因爲我們不知道那個幻數(20000?)究竟是什麼。可能會更大。或更小。