日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle Explain Plan,hint解释与示例

發布時間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle Explain Plan,hint解释与示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

Oracle 專業dba博客:http://blog.csdn.net/tianlesoftware

?

Hint 是Oracle 提供的一種SQL語法,它允許用戶在SQL語句中插入相關的語法,從而影響SQL的執行方式。

因為Hint的特殊作用,所以對于開發人員不應該在代碼中使用它,Hint 更像是Oracle提供給DBA用來分析問題的工具 。在SQL代碼中使用Hint,可能導致非常嚴重的后果,因為數據庫的數據是變化的,在某一時刻使用這個執行計劃是最優的,在另一個時刻,卻可能很差,這也是CBO 取代RBO的原因之一,規則是死的,而數據是時刻變化的,為了獲得最正確的執行計劃,只有知道表中數據的實際情況,通過計算各種執行計劃的成本,則其最優,才是最科學的,這也是CBO的工作機制。 在SQL代碼中加入Hint,特別是性能相關的Hint是很危險的做法。

參考:Oracle Hint

hint格式:/*+ ? ? ? ?*/

FULL Hint

該Hint告訴優化器對指定的表通過全表掃描的方式訪問數據。

示例:

?????????SQL> select /*+full(dave) */ * from dave;

?

要注意,如果表有別名,在hint里也要用別名,?這點在前面已經說明。

?

?

Explain Plan執行計劃是用于查看sql每個執行步驟情況信息的一個優化工具系列之一。

如果要分析某條SQL的性能問題,通常我們要先看SQL的執行計劃,看看SQL的每一步執行是否存在問題。 如果一條SQL平時執行的好好的,卻有一天突然性能很差,如果排除了系統資源和阻塞的原因,那么基本可以斷定是執行計劃出了問題。

看懂執行計劃也就成了SQL優化的先決條件。 這里的SQL優化指的是SQL性能問題的定位,定位后就可以解決問題。

參考:Oracle 執行計劃(Explain Plan) 說明

使用SQL

SQL>EXPLAIN PLAN FOR sql語句;

SQL>SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));

示例:

SQL>?EXPLAIN PLAN FOR SELECT * FROM DAVE;

已解釋。

SQL>?SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));

或者:

SQL>??select * from table(dbms_xplan.display);

?

?

關于Oracle優化器,參考:

?????????Oracle Optimizer CBO RBO

http://blog.csdn.net/tianlesoftware/archive/2010/08/19/5824886.aspx

?

轉載于:https://www.cnblogs.com/svennee/p/4165331.html

總結

以上是生活随笔為你收集整理的Oracle Explain Plan,hint解释与示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。