[英]Improve Oracle Query Structure
我的查詢大約需要2分鍾才能執行,有關如何改進查詢以減少2分鍾等待時間的任何建議。
我的查詢:
SELECT
PRICE, VOLUME, BLOCK
FROM
owner.table
WHERE
basis = 'location_name" AND
tableSource = 'DetailTable' AND
type = 'Sales' AND
contractMonth = '05' AND
to_char(createDate,'YYYY-MM-DD') = '2016-01-01'
首先,我將查詢重寫為如下形式:
SELECT t.PRICE, t.VOLUME, t.BLOCK
FROM owner.table t
WHERE basis = 'location_name' AND
tableSource = 'DetailTable' AND
type = 'Sales' AND
contractMonth = '05' AND
createDate >= date '2016-01-01' AND
createDate < date '2016-01-02';
然后,為了提高性能,在(basis, tableSource, type, contractMonth, createDate)
上創建索引。
您還可以添加price
, volume
和block
作為索引的最后三列。 然后,索引將覆蓋查詢,這意味着索引具有所有列,並且無需加載原始數據頁。
檢查索引,並確保索引列類型與值相同。 例如; 是contractMonth列號或varchar等。因為如果要使用索引,則方程式的每一側都必須是同一類型。 另外,根據實際直方圖檢查上次分析的日期,以進行真正的優化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.