程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 利用with語句提高Oracle查詢效率

利用with語句提高Oracle查詢效率

編輯:Oracle數據庫基礎

Oracle查詢效率應該如何提高呢?這是我們經常要思考的問題。下面就教您如何利用with語句提高Oracle查詢效率的方法,供您參考。

在oracle中,select 查詢語句,可以使用with,就是一個子查詢,Oracle 會把子查詢的結果放到臨時表中,可以反復使用

例子:注意,這是sql語句,不是pl/sql語句, 可以直接放到jdbc執行的

  1. with  
  2.  
  3. --入庫信息,利用子查詢,將數據預處理一次,這樣數據就很少了, 下面可以很快的反復查rkxx,  
  4.  
  5. rkxx as (select sz,zt,sum(se) se --稅種,狀態,稅額  
  6.  
  7.               from zsxx  
  8.  
  9.               where rkrq between '2007-02' and '2007-06' --條件,統計日期  
  10.  
  11.              group by sz,zt  
  12.  
  13.               )  
  14.  
  15.      select sk.sz,sk.se,fk.se,znj.se  
  16.  
  17.              from (select sz,sum(se) se from rkxx --這裡可以直接查詢with子查詢的結果rkxx  
  18.  
  19.                        where zt='01' 
  20.  
  21.                         group by sz) sk,--稅款  
  22.  
  23.                      (select sz,sum(se) se from rkxx  
  24.  
  25.                        where zt='02' 
  26.  
  27.                         group by sz) fk,--罰款  
  28.  
  29.                         (select sz,sum(se) se from rkxx  
  30.  
  31.                        where zt='03  
  32.  
  33.                         group by sz) znj --滯納金  
  34.  
  35.               where sk.sz=fk.sz  
  36.  
  37.                   and sk.sz=znj.sz  

這樣,經過with預先處理好數據,然後再在處理好的數據上做查詢分析,不用再訪問原始表,這樣效率是很高的。

注意,預先處理好的數據,一定要少 可以把條件盡可能的加到with子查詢中,這樣Oracle查詢效率才會更快。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved