教你使用智慧最佳化器提高Oracle效能極限
select /*+ ordered use_nl(bonus) parallel(e, 4) */e.ename,hiredate,b.comm.fromemp e,bonus bwheree.ename = b.ename |
select /*+ ordered use_hash (emp, dept) use_nl (sal, bonus) */fromemp,dept,sal,bonuswhere . . . |
實踐建議 實際上,更有效率的做法是在產品環境中減小optimizer_max_permutations引數的大小,並且總是使用穩定的最佳化計劃或儲存輪廓來防止出現耗時的含有大量連線的查詢。一旦找到最佳的連線順序,您就可以透過增加ordered提示到當前的查詢中,並儲存它的儲存輪廓,來為這些表手工指定連線順序,從而使其持久化。 當你打算使用最佳化器來穩定計劃,則可以照下面的方法使執行計劃持久化,臨時將optimizer_search_limit設定為查詢中的表的數目,從而允許最佳化器考慮所有可能的連線順序。然後,透過重新編排WHERE子句中表的名字,並使用ordered提示,與儲存輪廓一起使變更持久化,來調整查詢。在查詢中包含四個以上的表時,ordered提示和儲存輪廓將排除耗時的評估SQL連線順序解析的任務,從而提高查詢的速度。 一旦檢測到最佳的連線順序,我們就可以使用ordered提示來過載optimizer_search_limit和optimizer_max_permutations引數。ordered提示要求表按照它們出現在FROM子句中的順序進行連線,所以最佳化器沒有加入描述。 作為一個Oracle專業人員,你應該知道在SQL語句第一次進入庫快取時可能存在重大的啟動延遲。但是聰明的Oracle DBA和開發人員能夠改變表的搜尋限制引數或者使用ordered提示來手工指定表的連線順序,從而顯著地減少最佳化和執行新查詢所需的時間。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/64429/viewspace-917706/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用智慧最佳化器提高Oracle的效能極限Oracle
- 使用智慧最佳化器提高Oracle的效能極限 (轉)Oracle
- 【效能最佳化】Oracle 效能最佳化:降低列值聚簇因子 提高查詢效率Oracle
- web前端圖片極限最佳化策略Web前端
- 「前端那些事兒」② 極限效能優化前端優化
- 極限
- 最佳化資料庫的三板斧大幅提高Oracle效能資料庫Oracle
- mysql count函式與分頁功能極限最佳化MySql函式
- 極限limitMIT
- oracle 效能最佳化Oracle
- 極限資訊釋出器 V1.0
- 聯想ThinkSystem伺服器,企業智慧化考驗下的極限應考伺服器
- 思考的極限
- 【效能最佳化】ORACLE資料庫效能最佳化概述Oracle資料庫
- Oracle SQL效能最佳化OracleSQL
- Oracle sql 效能最佳化OracleSQL
- 圖解瀏覽器快取,教你提高使用者體驗圖解瀏覽器快取
- 伺服器的效能如何提高伺服器
- Oracle 效能最佳化小結Oracle
- ORACLE效能最佳化筆記Oracle筆記
- oracle大表效能最佳化Oracle
- Path 突破Canvas極限Canvas
- 極限程式設計程式設計
- 通道的極限容量
- Oracle效能最佳化之SQL最佳化(轉)OracleSQL
- ORACLE最佳化器Oracle
- 網頁設計師教你怎麼提高網站SEO最佳化網頁網站
- 使用 Traefik 提高 WebSocket 應用效能Web
- oracle JDBC insert 最佳化(二) :使用批次寫入,提高oracle資料庫寫速度OracleJDBC資料庫
- 使用Intel 向量化編譯器最佳化效能(1) (轉)Intel編譯
- 怎樣提高伺服器的效能伺服器
- 如何提高Linux伺服器效能Linux伺服器
- Java效能優化:教你提高程式碼執行的效率Java優化
- 提高網站效能的SSL/TLS最佳化方法介紹!網站TLS
- Oracle效能最佳化之應用最佳化(轉)Oracle
- Oracle效能最佳化之最佳化排序操作(轉)Oracle排序
- Oracle SQL效能最佳化常用方法OracleSQL
- Oracle效能最佳化 之 共享池Oracle