yanruijie
用智能優化限制提高Oracle數據庫性能
用已排序指示來指定一種連接排序
你可以設定優化器評估的排列數的上限。但是對復雜的情況下,即使允許的排列數很大,優化器也很可能在遠遠沒有找到一個比較合適的排列之間就已經停止優化了。你不妨回頭看看我前面舉的那個例子(15個需要連接的表有超過一萬億種排列)。如果設定優化器考慮80,000種排列,那么這僅僅考慮了所有可能性的0.000006%,優化器極可能沒有達到最佳的排列。
在Oracle SQL中解決這個問題的最好方法就是手工指定一種表格連接順序。這里需要遵循的大原則就是表格連接順序應該使得查詢計劃盡快得以建立,通常在SQL語句中使用WHERE限制子句。
下面以一個對名為emp的表格的并行查詢為例,例子中的代碼強制查詢計劃執行一個嵌套循環連接(nested loop join)。注意,我使用了已排序指示來引導優化器來評估WHERE子句中給出的表格的連接順序。
select /*+ ordered use_nl(bonus) parallel(e, 4) */
e.ename,
hiredate,
b.comm.
from
emp e,
bonus b
where
e.ename = b.ename
;
更多軟考資料請訪問:考試吧軟件水平考試欄目
希望與更多網友交流,請進入考試吧軟件水平考試論壇
轉帖于:軟件水平考試_考試吧
- 推薦給朋友
- 收藏此頁
·用腳本和查詢主動監視Oracle 9i性能 (2007-1-25 16:21:06)
·教你調整Oracle數據庫服務器的性能 (2007-1-25 16:15:36)
·SQL SERVER優化建議 (2007-1-25 16:13:03)
·Oracle SQL語句優化技術分析 (2007-1-25 16:09:20)
·Excel數據透視表使用方法精要12點(中文對照) (2007-1-25 16:06:31)
·Oracle數據庫性能優化技術 (2007-1-25 16:00:58)
·教你調整Oracle數據庫服務器的性能 (2007-1-25 16:15:36)
·SQL SERVER優化建議 (2007-1-25 16:13:03)
·Oracle SQL語句優化技術分析 (2007-1-25 16:09:20)
·Excel數據透視表使用方法精要12點(中文對照) (2007-1-25 16:06:31)
·Oracle數據庫性能優化技術 (2007-1-25 16:00:58)