Oracle SQL培訓筆記 開發人員 三

2021-08-29 09:26:45 字數 1088 閱讀 5742

四 索引與分頁--怎麼樣sql執行的更快

正確的使用索引

where條件落在索引上

不要在where的=前使用函式,否則無法使用索引

is null可能無法使用索引

不正確的隱式轉換可能不能使用索引

如果能在索引獲得資料,就不要回表

如果是復合索引,注意第2個字段以後,可能使用不到索引

正確的使用hint

如果有別名,一定要有別名

格式如/*+ index(t index_name) */

無需回表查詢的分頁寫法

存在以下表t1(a,b,c,d) t1上有索引字段(b,c) .如果只是查b,c兩個欄位則:

*from

(select

tt.b, tt.c, rownum 

asrn

from

(select

t.b, t.c 

from

t1 t 

wherec =

2order

byt.c) tt

where

rownum 

<3)

where

rn >1

需回表查詢的分頁寫法

select

/*+ ordered use_nl(t,t1) */*

from

(select

rid 

from

(select

rownum rn,rid 

from

(select

rowid rid 

from

t1wherec=

2order

byc 

desc

) where

rownum 

<=

50) 

where

rn >=

1) t,

t1where

t.rid

=t1.rowid;

Oracle Sql優化筆記

基本的sql編寫注意事項 需要注意的是,隨著oracle的公升級,查詢優化器會自動對sql語句進行優化,某些限制可能在新版本的oracle下不再是問題。尤其是採用cbo cost based optimization,基於代價的優化方式 時。我們可以總結一下可能引起全表掃瞄的操作 oracle優化器...

Oracle Sql優化筆記

基本的sql 編寫注意事項 需要注意的是,隨著oracle的公升級,查詢優化器會自 動對sql語句 進行優化,某些限制可能在新版本的oracle下不再是問題。尤其是採用 cbo cost based optimization 基於代價的 優化方式 時。我們可以 總結一下可能引起全表 掃瞄的操作 or...

Oracle Sql優化筆記

基本的sql編寫注意事項 需要注意的是,隨著oracle的公升級,查詢優化器會自動對sql語句進行優化,某些限制可能在新版本的oracle下不再是問題。尤其是採用cbo cost based optimization,基於代價的優化方式 時。我們可以總結一下可能引起全表掃瞄的操作 oracle優化器...