Oracle常用技巧記錄

一、Oracle執行計劃的使用

當一段查詢sql執行特別慢的時候,需要對其進行優化,此時藉助PLSQL DEVELOPER工具,查看sql的執行計劃,所有問題一目瞭然。這裏只是舉個簡單的例子,如何讀懂執行計劃,可以參考博文:

https://www.cnblogs.com/xqzt/p/4467867.html

https://blog.csdn.net/xybelieve1990/article/details/50562963

1.1方式一

如何進入執行計劃的頁面?可以選中要執行的sql,然後單擊工具欄上的按鈕(如下圖),也可以選中要執行的sql,按F5

數據準備:表order_detail_info,該表中約有40萬測試數據,其中列register_id是有索引的。然後演示一下,執行以下sql,進入解釋計劃窗口頁面。

select * from order_detail_info o2 where o2.register_id like '%577094'

Table_access_full代表全表掃描。通過執行計劃的描述和耗時,可以分析得知like‘%_’的查詢條件使register_id的索引失效,所以耗費資源較大。再來比較一下使用到索引的執行計劃情況。

select * from order_detail_info o2 where o2.register_id='437577094';

index_range_scan:索引範圍掃描。通過描述和耗費可知,該查詢是使用到了索引,耗費資源少了很多。

1.2方式二

也可以通過sql語句的方式查看執行計劃,語法爲:

explain plan for 要執行的sql;
select * from table(DBMS_XPLAN.display);

還是採用先前的sql進行測試,在sql窗口執行以下sql,可以在輸出窗口看到執行計劃。

explain plan for select * from order_detail_info o2 where o2.register_id like '%577094';
select * from table(DBMS_XPLAN.display);

同樣有索引的sql執行計劃如下,可以對比查看:

explain plan for select * from order_detail_info o2 where o2.register_id='437577094';
select * from table(DBMS_XPLAN.display);

二、根據關鍵字搜索相關存儲過程的sql寫法

SELECT * FROM ALL_SOURCE where TYPE='PROCEDURE' AND TEXT LIKE '%'||upper('第一步')||'%';

三、。。。。。

待補充。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章