基於Oracle,SQL語句優化方法30例(01)

2021-06-01 18:18:06 字數 1789 閱讀 8325

sql語句優化方法30例

在sql語句優化過程中,我們經常會用到hint,現總結一下在sql優化過程中常見oracle hint的用法:

1. /*+all_rows*/

表明對語句塊選擇基於開銷的優化方法,並獲得最佳吞吐量,使資源消耗最小化.

例如:select /*+all+_rows*/ emp_no,emp_nam,dat_in from bsempms where emp_no=』scott』;

2. /*+first_rows*/

表明對語句塊選擇基於開銷的優化方法,並獲得最佳響應時間,使資源消耗最小化.

例如:select /*+first_rows*/ emp_no,emp_nam,dat_in from bsempms where emp_no=』scott』;

3. /*+choose*/

表明如果資料字典中有訪問表的統計資訊,將基於開銷的優化方法,並獲得最佳的吞吐量;

表明如果資料字典中沒有訪問表的統計資訊,將基於規則開銷的優化方法;

例如:select /*+choose*/ emp_no,emp_nam,dat_in from bsempms where emp_no=』scott』;

4. /*+rule*/

表明對語句塊選擇基於規則的優化方法.

例如:select /*+ rule */ emp_no,emp_nam,dat_in from bsempms where emp_no=』scott』;

5. /*+full(table)*/

表明對錶選擇全域性掃瞄的方法.

例如:select /*+full(a)*/ emp_no,emp_nam from bsempms a where emp_no=』scott』;

6. /*+rowid(table)*/

提示明確表明對指定表根據rowid進行訪問.

例如:select /*+rowid(bsempms)*/ * from bsempms where rowid>=』aaaaaaaaaaaaaa』

and emp_no=』scott』;

7. /*+cluster(table)*/

提示明確表明對指定表選擇簇掃瞄的訪問方法,它只對簇物件有效.

例如:select /*+cluster */ bsempms.emp_no,dpt_no from bsempms,bsdptms

where dpt_no=』tec304′ and bsempms.dpt_no=bsdptms.dpt_no;

8. /*+index(table index_name)*/

表明對錶選擇索引的掃瞄方法.

例如:select /*+index(bsempms ***_index) use ***_index because there are fewmale bsempms */ from bsempms where ***=』m';

9. /*+index_asc(table index_name)*/

表明對錶選擇索引公升序的掃瞄方法.

例如:select /*+index_asc(bsempms pk_bsempms) */ from bsempms where dpt_no=』scott』;

10. /*+index_combine*/

為指定表選擇位圖訪問路經,如果index_combine中沒有提供作為引數的索引,將選擇出位圖索引的布林組合方式.

例如:select /*+index_combine(bsempms sal_bmi hiredate_bmi)*/ * from bsempms

where sal<5000000 and hiredate

Oracle SQL語句優化

1,建表時 1 建立主鍵 2 建立索引 3 如果表資料量很大考慮建立分割槽 4 可以使用number型別的就不適用varchar2,這是因為引擎在處理查詢和連線時會逐個比較字串中每乙個字元,而對於數字型而言只需要比較一次就夠了。2,建立索引注意事項 1 首先應考慮在 where 及 order by...

Oracle SQL語句優化技術分析

操作符優化 in操作符 用in寫出來的sql的優點是比較容易寫及清晰易懂,這比較適合現代軟體開發的風格。但是用in的sql效能總是比較低的,從oracle執行的步驟來分析用in的sql與不用in的sql有以下區別 oracle 試圖將其轉換成多個表的連線,如果轉換不成功則先執行in裡面的子查詢,再查...

Oracle SQL語句優化技術 解讀實戰技巧

在from後面的表中的列表順序會對sql執行效能影響,在沒有索引及oracle沒有對錶進行統計分析的情況下oracle會按表出現的順序進行鏈結。一.sql語言的使用 1.in 操作符 用in寫出來的sql的優點是比較容易寫及清晰易懂,這比較適合現代軟體開發的風格。但是用in的sql效能總是比較低的,...