婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Oracle提高SQL執行效率的3種方法

Oracle提高SQL執行效率的3種方法

熱門標簽:百度地圖標注素材 word地圖標注方向 阿爾巴尼亞地圖標注app 人工智能地圖標注自己能做嗎 征服眼公司地圖標注 征服者火車站地圖標注 外呼線路外顯本地號碼 美圖秀秀地圖標注 開封智能外呼系統廠家
Oracle提供了多種方法用于減少花在剖析Oracle SQL表達式上的時間,在執行帶有大量執行計劃的復雜查詢時剖析過程會拖累系統的性能。現在我們來簡要地看看這些方法中的幾種。

1、使用ordered提示

Oracle必須花費大量的時間來剖析多表格的合并,用以確定表格合并的最佳順序。如果SQL表達式涉及七個乃至更多的表格合并,那么有時就會需要超過30分鐘的時間來剖析,因為Oracle必須評估表格合并所有可能的順序。八個表格就會有40,000多種順序。Ordered這個提示(hint)和其他的提示一起使用能夠產生合適的合并順序。

Ordered這個提示會要求列在SQL表達式FROM字句里的表格按照指定的順序進行合并,FROM字句里的第一個表格會指定驅動表格(driving table)。驅動表格應該是返回最小行數的表格。使用ordered提示會跳過非常耗時和耗資源的剖析操作,并加快Oracle SQL的執行。

Listing A如下:

以下是引用片段:

Listing A

select /*+ ordered use_nl(bonus)

parallel(e, 4) */ e.ename, hiredate, b.comm from emp e, bonus b

where e.ename = b.ename ;

Listing A里是一個復雜查詢的例子,這個查詢被強制進行一個嵌套循環,從而與對emp表格進行的并行查詢合并。要注意,我已經使用ordered提示來引導Oracle去按照WHERE子句所列出的順序來評估表格。

2、使用theordered_predicates

ordered_predicates提示在查詢的WHERE子句里指定的,并被用來指定布爾判斷(Boolean predicate)被評估的順序。在沒有ordered_predicates的情況下,Oracle會使用下面這些步驟來評估SQL判斷的順序:

子查詢的評估先于外層WHERE子句里的Boolean條件。

所有沒有內置函數或者子查詢的布爾條件都按照其在WHERE子句里相反的順序進行評估,即最后一條判斷最先被評估。

每個判斷都帶有內置函數的布爾判斷都依據其預計的評估值按遞增排列。

你可以使用ordered_predicates提示來強制取代這些缺省的評估規則,那么你WHERE子句里的項目就會按照其在查詢里出現的順序被評估。在查詢的WHERE子句里使用了PL/SQL函數的情況下,通常會使用ordered_predicates提示。如果你知道限制最多的判斷并且希望Oracle最先評估這些判斷的時候,在這種情況下,它也是非常有用的。用法提示:你不能使用ordered_predicates提示來保存對索引鍵進行判斷評估的順序。

3、限制表格合并評估的數量

提高SQL剖析性能的最后一種方法是強制取代Oracle的一個參數,這個參數控制著在評估一個查詢的時候,基于消耗的優化器所評估的可能合并數量。

optimizer_search_limit這個參數會指定表格合并組合的最大數量,后者將會在Oracle試圖確定合并多表格最佳方式的時候被評估。這個參數有助于防止優化器花更多的時間來評估可能的合并順序,而不是把時間花在尋找最佳合并順序上。optimizer_search_limit還控制著用于調用star join提示的闕值,當查詢里的表格數量低于optimizer_search_limit(其缺省的值是5)的時候,star提示就會被光顧。
您可能感興趣的文章:
  • sql格式化工具集合
  • SQL查詢效率注意事項小結
  • mysql格式化小數保留小數點后兩位(小數點格式化)
  • SQL Server中的SQL語句優化與效率問題
  • C++操作MySQL大量數據插入效率低下的解決方法
  • C#適用于like語句的SQL格式化函數
  • 提高MySQL中InnoDB表BLOB列的存儲效率的教程
  • 通過格式良好的SQL提高效率和準確性

標簽:泰安 海北 酒泉 宜春 淮南 孝感 六安 葫蘆島

巨人網絡通訊聲明:本文標題《Oracle提高SQL執行效率的3種方法》,本文關鍵詞  Oracle,提高,SQL,執行,效率,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle提高SQL執行效率的3種方法》相關的同類信息!
  • 本頁收集關于Oracle提高SQL執行效率的3種方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 沈阳市| 绵竹市| 苍溪县| 五大连池市| 江华| 察哈| 桃园县| 兴化市| 通河县| 松滋市| 安泽县| 水富县| 株洲县| 青河县| 桑植县| 理塘县| 安平县| 海兴县| 渑池县| 仁布县| 藁城市| 古浪县| 衡水市| 新竹县| 板桥市| 蓝山县| 东辽县| 略阳县| 孟津县| 香港 | 瑞丽市| 策勒县| 乐安县| 贡山| 濮阳县| 宜昌市| 澄迈县| 新蔡县| 安西县| 北碚区| 富顺县|