SQL語句效能調整一例

2021-06-29 15:39:44 字數 1212 閱讀 6188

公司開發同事發來一條語句,反應執行很慢,原語句如下:

select

count(df.origrec)* it.scale as pcount,

it.invcode as invcode,

df.samplefrom as rasclientid

from da_finance_pricesett df,

dbs_db_invbtest it

where df.testcode = it.testcode

and to_char(df.senddate,'yyyy-mm-dd') > '2013-02-25'

and to_char(df.senddate,'yyyy-mm-dd') <= '2013-02-25'

and it.invcode in

(select

distinct invcode from dbs_db_invbtest

)group

by it.scale,

it.invcode,

df.samplefrom;

存在的問題:

1、條件子句條件含函式引起的隱性轉換導致全表掃瞄;

2、條件子句的巢狀條件存在無條件過濾導致全表掃瞄,而且從連線條件邏輯看,該子句與第一次等值連線是重複的。修改如下:

select

count(df.origrec)* it.scale as pcount,

it.invcode as invcode,

df.samplefrom as rasclientid

from da_finance_pricesett df,

dbs_db_invbtest it

where df.testcode = it.testcode

and df.senddate >to_date('2013-01-25','yyyy-mm-dd')

and df.senddate <=to_date('2013-02-25','yyyy-mm-dd')

group

by it.scale,

it.invcode,

df.samplefrom;

SQL語句效能調整原則

一 問題的提出 在應用系統開發初期,由於開發資料庫資料比較少,對於查詢sql語句,複雜檢視的的編寫等體會不出sql語句各種寫法的效能優劣,但是如果將應用系統提交實際應用後,隨著資料庫中資料的增加,系統的響應速度就成為目前系統需要解決的最主要的問題之一。系統優化中乙個很重要的方面就是sql語句的優化。...

SQL語句效能調整原則

一 問題的提出 在應用系統開發初期,由於開發資料庫資料比較少,對於查詢sql語句,複雜檢視的的編寫等體會不出sql語句各種寫法的效能優劣,但是如果將應用系統提交實際應用後,隨著資料庫中資料的增加,系統的響應速度就成為目前系統需要解決的最主要的問題之一。系統優化中乙個很重要的方面就是sql語句的優化。...

SQL語句效能調整原則

一 問題的提出 在應用系統開發初期,由於開發資料庫資料比較少,對於查詢sql語句,複雜檢視的的編寫等體會不出sql語句各種寫法的效能優劣,但是如果將應用系統提交實際應用後,隨著資料庫中資料的增加,系統的響應速度就成為目前系統需要解決的最主要的問題之一。系統優化中乙個很重要的方面就是sql語句的優化。...