簡體   English   中英

改善Oracle查詢結構

[英]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)上創建索引。

您還可以添加pricevolumeblock作為索引的最后三列。 然后,索引將覆蓋查詢,這意味着索引具有所有列,並且無需加載原始數據頁。

檢查索引,並確保索引列類型與值相同。 例如; 是contractMonth列號或varchar等。因為如果要使用索引,則方程式的每一側都必須是同一類型。 另外,根據實際直方圖檢查上次分析的日期,以進行真正的優化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM