教你使用智慧最佳化器提高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
- 極限
- mysql count函式與分頁功能極限最佳化MySql函式
- 《極限競速:地平線 5》前瞻:提高擬真反而更易上手
- .NET8極致效能最佳化CHRL
- .NET8極致效能最佳化AOT
- 極限森林
- 極限limitMIT
- 圖解瀏覽器快取,教你提高使用者體驗圖解瀏覽器快取
- 如何提高Linux伺服器效能Linux伺服器
- 伺服器的效能如何提高伺服器
- 能源的極限
- 關於無限極分類設計如何分頁?如何設計出高效能的無限極分類?
- 聯想ThinkSystem伺服器,企業智慧化考驗下的極限應考伺服器
- 使用 Traefik 提高 WebSocket 應用效能Web
- 使用資源管理器優化Oracle效能AQ優化Oracle
- LightDB-像Oracle一樣使用最佳化器提示(十)Oracle
- 16 臺伺服器達成 1000 萬 tpmC!挑戰分散式資料庫效能極限伺服器分散式資料庫
- 提高網站效能的SSL/TLS最佳化方法介紹!網站TLS
- 怎樣提高伺服器的效能伺服器
- Java效能優化:教你提高程式碼執行的效率Java優化
- 網頁設計師教你怎麼提高網站SEO最佳化網頁網站
- 無限極分類
- Path 突破Canvas極限Canvas
- 極限與連續
- 通道的極限容量
- 耐火極限測試
- 極限程式設計程式設計
- 【譯】使用kotlin協程提高app效能KotlinAPP
- 伺服器SMB效能最佳化伺服器
- 伺服器效能最佳化文件伺服器
- 伺服器效能最佳化指南伺服器
- .NET8極致效能最佳化Non-GC HeapGC
- 極致效能最佳化:前端SSR渲染利器Qwik.js前端JS
- 在ArkTS中,如何最佳化佈局以提高效能?
- 3倍+提升,高德地圖極致效能最佳化之路地圖
- 使用記憶體資料庫可以最佳化伺服器效能記憶體資料庫伺服器
- 每天都在挑戰極限...