[20191220]格式化執行計劃.txt
[20191220]格式化執行計劃.txt
--//昨天幫別人最佳化一個sql語句.對方給的執行計劃類似如下:
SCOTT@book> set linesize 80
SCOTT@book> alter session set statistics_level = all;
Session altered.
SCOTT@book> select * from scott.emp ;
SCOTT@book> @ dpc '' ''
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID 9mhzzknczbj6p, child number 1
-------------------------------------
select * from scott.emp
Plan hash value: 3956160932
--------------------------------------------------------------------------------
------------------------------------
| Id | Operation | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time
| A-Rows | A-Time | Buffers |
--------------------------------------------------------------------------------
------------------------------------
| 0 | SELECT STATEMENT | | 1 | | | 3 (100)|
| 14 |00:00:00.01 | 7 |
| 1 | TABLE ACCESS FULL| EMP | 1 | 14 | 532 | 3 (0)| 00:00:
01 | 14 |00:00:00.01 | 7 |
--------------------------------------------------------------------------------
------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
1 - SEL$1 / EMP@SEL$1
--//實際上的執行計劃遠比上面看到的複雜.為什麼不自己簡單設定一下環境.再上傳結果.無語...實際上包括我的同事也是一樣....
--//我自己使用vim,利用一個宏解決這個問題.我一般寫宏先記錄按鍵,然後執行,這樣不容易出錯.最好這些按鍵不要包含方向鍵使用hjkl代替.
<ESC>:j!<CR>jdd<ESC>
--//注:這裡<ESC>表示<ESC>按鍵輸入如下,啟動宏記錄:
qj
--//然後打入上面按鍵,最後按q結束.
--//打入:register j看到如下:
:register j
--- Registers ---
"j ^[:j!^Mjdd^[
--//然後計算要重複的次數,很簡單選中vim提示裡面有選中的行數除以3就是重複此時.我這裡是6次,直接輸入6@j,看到效果如下:
--------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time | A-Rows | A-Time | Buffers |
--------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | | 3 (100)| | 14 |00:00:00.01 | 7 |
| 1 | TABLE ACCESS FULL| EMP | 1 | 14 | 532 | 3 (0)| 00:00:01 | 14 |00:00:00.01 | 7 |
--------------------------------------------------------------------------------------------------------------------
--//可以發現還是有點點瑕疵.不過基本ok了,自己再修改一下ok.
--//我後來看tanelpoder的blog,連結也提到類似問題:
http://blog.tanelpoder.com/2010/01/18/sometimes-things-are-easy-part-1-how-to-fix-wrapped-execution-plan-text/
--//他的解決方式是:
$ cat /tmp/x | awk '{ printf "%s", $0 ; if (NR % 3 == 0) print } END { print }'
--//很少用.我自己還是使用我的方法處理類似問題.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2669603/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 執行計劃-1:獲取執行計劃
- 【執行計劃】格式化EXPLAIN PLAN的輸出結果AI
- 執行計劃
- [20210926]並行執行計劃疑問.txt並行
- 分析執行計劃優化SQLORACLE的執行計劃(轉)優化SQLOracle
- oracle sqlprofile 固定執行計劃,並遷移執行計劃OracleSQL
- 【sql調優之執行計劃】獲取執行計劃SQL
- SYBASE執行計劃
- MySQL 執行計劃MySql
- MySQL執行計劃MySql
- sql 執行計劃SQL
- ORACLE執行計劃Oracle
- 【執行計劃】Oracle獲取執行計劃的幾種方法Oracle
- 【Oracle】-【索引-HINT,執行計劃】-帶HINT的索引執行計劃Oracle索引
- 分析執行計劃最佳化SQLORACLE的執行計劃(轉)SQLOracle
- [20190111]執行計劃bitmap and.txt
- 實驗-資料分佈對執行計劃的影響.txt
- [20171225]檢視並行執行計劃注意的問題.txt並行
- 【PG執行計劃】Postgresql資料庫執行計劃統計資訊簡述SQL資料庫
- oracle 固定執行計劃Oracle
- Oracle sql執行計劃OracleSQL
- explain執行計劃分析AI
- mysql執行計劃explainMySqlAI
- mysql explain 執行計劃MySqlAI
- MySQL執行計劃解析MySql
- 分割槽 執行計劃
- 執行計劃繫結
- SQL Server執行計劃SQLServer
- 執行計劃詳解
- 啟動執行計劃
- SQL的執行計劃SQL
- FAST DUAL執行計劃?AST
- 執行計劃的理解.
- min ? max ? 執行計劃?
- 檢視執行計劃
- SQL執行計劃分析SQL
- 如何看懂執行計劃!
- 閱讀執行計劃