我有一個事實表,其中包含8百萬行,每月增加100萬行。該表已包含索引。該表由IBM Cognos環境用於生成報告。目前我正在尋找優化表SELECT語句的方法。作爲第一次嘗試,我對錶進行了分區(每個分區具有相同的行分佈),並且該查詢適用於分區,但出於某種原因,我得到的性能相當甚至更差,這很奇怪。每個查詢只有一個分區受到影響。有人可以解釋如何優化這個?從Oracle 10中的分區事實表中優化SELECT
我想到的第二個想法是將事實表作爲Index組織表來實現,但它必須將所有列都作爲主鍵。這是否正常,並會有性能增益?
第三個想法是以包含從星型模式連接的所有列的方式實現事實表。會有性能增益嗎?
編輯:這裏是執行計劃:
我已設法通過3次,以減少的訪問時間的事實表FT_COSTS(成本爲42000,現在是14900)後,我創建包含所述分區條件索引,但在此之前,我的結果比未分區的表格要糟糕。我用這個鏈接來解決我的分區問題Range partition skip check
從我現在看到的主要瓶頸是GROUP BY,它將成本從34000提高到85000,這比兩倍多。有沒有人有關於這個解決方法的想法?
爲什麼不寫出有問題的sql查詢?這將是非常有幫助 – 2010-07-08 15:48:49