Oracle sql perfermance

1. in v.s. exist

in 先執行subQuery再將結果暫存去query mainQuery

exist 先執行 mainQuery再去掃subQuery

當主表>子表 適合用 in

當子表>主表 適合用 exist

依資料量而定

2. not exist 效率皆大於 not in

3. 少用 <> 以及 != ,會進行整表掃描。以>、<取代。愛用>= 少用> ,因union會進行刪除重複的資料,資料量大的話會造成disk sort 。如果不需要刪除就用union all

4. 使用null or not null 會停用索引進行整表掃描,最後再設定是可能用not null設定填入default值

5. 少在where子句中使用如nvl, decode, trunc, to_char, … 等

索引不是基於函數的,那麼當在Where子句中對索引列使用函數時,索引不再起作用。Where子句中避免在索引列上使用計算,否則將導致索引失效而進行全表掃瞄。

可採用Oracle 函數如引,參考

6. Order By語句中的非索引列會降低性能,order by 索引能加快速度。因此,不在Order By語句中使用表達式。

其他….where子句要注意的 網頁

11:37 pm, by think777 1

get radio val()

<input type=”radio” value=”0”  name=”sorceDataTypeRadio” id=”sorceDataTypeRadio” checked=”checked”/>

<input type=”radio” value=”1”  name=”sorceDataTypeRadio” id=”sorceDataTypeRadio” />

$(‘input [name=sorceDataTypeRadio]:radio’).val()  => alert default checked val =0

$(‘input [name=sorceDataTypeRadio]:radio :checked’).val() => alert selected val  


10:44 pm, by think777

####photo from @decaylala

紀錄一下~2011/06/17 去聽河岸留言 =蛋堡&Jabber Loop 

認識了Jabber Loop 好強的樂團阿!!!

獨立音樂 真的很棒!!!!

  09:25 pm, by think777