要優化SELECT查詢,我運行它們都有或沒有索引,並測量差異。我運行了一堆不同的類似查詢,並嘗試選擇不同的數據以確保緩存不會影響結果。但是,在非常大的表上,索引需要很長時間才能創建,而且我對於哪些索引是合適的有幾個不同的想法。關閉Oracle中的索引
是否有可能在Oracle(或其他任何數據庫)中執行查詢但告訴數據庫在執行查詢時不使用某個索引?或者只是完全關閉索引,但是能夠輕鬆地將其切換回來,而無需重新索引整個表格?這將使測試更容易,因爲我可以一次創建所有我正在考慮的索引,然後使用不同的索引來查詢我的查詢。
或者,有沒有更好的方法可以優化大表上的查詢,並知道哪些索引最適合創建?
當你說「查詢」時,你是專指'SELECT'查詢還是'UPDATE'和'INSERT'?通常它是'INSERT',它的性能會受到索引的負面影響。 'SELECT'通常會提高其性能。 – 2009-12-03 14:49:27
好點 - 我實際上是在討論優化SELECT查詢,我已經編輯我的問題來澄清這一點。我的目標是將我的SELECT查詢優化爲可接受的級別,索引數量最少,因爲更多索引會傷害我的更新和刪除。 – 2009-12-03 14:58:50