[20230921]為什麼執行計劃不再awr中.txt
[20230921]為什麼執行計劃不再awr中.txt
--//昨天看了https://www.cnblogs.com/kerrycode/p/17694824.html=>[翻譯]——Why my execution plan is not in AWR.
--//原始連結:https://hourim.wordpress.com/2021/06/27/why-my-execution-plan-is-not-in-awr
--//類似的問題我自己以前遇到過,多數情況下出現大量沒有使用繫結變數變數的sql語句對生產系統的衝擊,導致在生成awr報表時,在共
--//享池裡面已經無法找到對應sql語句,這樣其對應的執行計劃在以後使用dbms_xplan.display_awr查詢時找不到對應的執行計劃.
--//另外還有1個小問題:翻譯裡面出現一個cie怎麼意思,我看了原始連結:
In order to answer this question one needs to know that dba_hist_active_sess_history gets its data from
gv$active_session_history (ASH) while dba_hist_sqlstat and cie get their data from a bunch of other dynamic performance
view like v$sql, v$version, etc..
為了回答這個問題,我們需要知道 dba_hist_active_sess_history 是從gv$active_session_history (ASH) 獲取/採集資料,而
dba_hist_sqlstat 和 cie 從一堆其他動態效能檢視中(如 v$sql、v$version 等)獲取資料。
--//作者沒有翻譯cie,是原始作者筆誤還是表示怎麼,我使用金山詞霸看了一下:
cie
=[法] Compagnie(=company)
company
n.公司, 陪伴, (一)群, (一)隊, (一)夥, 連, 連隊
--//當然這些不重要.
--//我自己寫一個簡單的例子驗證這個過程,加強記憶。
1.環境:
SCOTT@test01p> @ver1
PORT_STRING VERSION BANNER CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0 12.2.0.1.0 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0
2.測試:
SCOTT@test01p> set timing on
SCOTT@test01p> select count(*) from all_objects,(select 1 from dual connect by level<=1000);
COUNT(*)
----------
18648000
Elapsed: 00:00:23.19
SCOTT@test01p> set timing off
SCOTT@test01p> @ hash
HASH_VALUE SQL_ID CHILD_NUMBER KGL_BUCKET PLAN_HASH_VALUE HASH_HEX SQL_EXEC_START SQL_EXEC_ID
---------- ------------- ------------ ---------- --------------- ---------- ------------------- -----------
2382077584 6uf3m7u6zr7nh 0 106128 2524108416 8dfb9e90 2023-09-21 21:18:11 16777216
SCOTT@test01p> @ ashtop sql_id,is_awr_sample sql_id='6uf3m7u6zr7nh' sysdate-1/24 sysdate
Total Distinct Distinct
Seconds AAS %This SQL_ID I FIRST_SEEN LAST_SEEN Execs Seen Tstamps
--------- ------- ------- ------------- - ------------------- ------------------- ---------- --------
46 .0 88% | 6uf3m7u6zr7nh N 2023-09-21 21:18:12 2023-09-21 21:20:28 2 46
6 .0 12% | 6uf3m7u6zr7nh Y 2023-09-21 21:18:11 2023-09-21 21:20:22 2 6
--//僅僅有6條記錄是is_awr_sample='Y',注我執行2次。
alter system flush shared_pool;
alter system flush shared_pool;
alter system flush shared_pool;
SYS@test> EXECUTE DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
PL/SQL procedure successfully completed.
--//注意一定要在cdb層面執行,,如果在PB下執行不會寫awr的歷史表!!
SCOTT@test01p> @ dashtop sql_id sql_id='6uf3m7u6zr7nh' sysdate-1/24 sysdate
Total
Seconds AAS %This SQL_ID FIRST_SEEN LAST_SEEN
--------- ------- ------- ------------- ------------------- -------------------
60 .0 100% 6uf3m7u6zr7nh 2023-09-21 21:18:11 2023-09-21 21:20:22
--//相當於查詢dba_hist_active_sess_history找到對應記錄,變成60秒,實際上前面的ashtop記錄消耗時間是46+6=52秒。
SCOTT@test01p> @ dpcawr 6uf3m7u6zr7nh '' ''
no rows selected
SCOTT@test01p> select * from table(dbms_xplan.display_awr('6uf3m7u6zr7nh'));
no rows selected
--//執行計劃不再awr中.
SCOTT@test01p> @ sqlhh 6uf3m7u6zr7nh 1
no rows selected
--//查詢dba_hist_sqlstat也找不到相關資訊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2985177/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE:什麼是執行計劃Oracle
- 為什麼該SQL的執行計劃不走索引???SQL索引
- zt_導回awr報告中的歷史執行計劃
- 20200909]為什麼執行計劃不是出現hash join semi.txt
- 執行計劃中Row 數量為0
- 產生AWR及單個sql的執行計劃SQL
- 【AWR】通過AWR報告中記錄的 SQL Id獲得SQL語句的執行計劃SQL
- AWR報告的收集和分析執行計劃的方式
- 為什麼銀行機構不再擔心採用雲端計算?
- 【專案管理經驗分享】為什麼專案計劃難以完美執行?專案管理
- 執行計劃-1:獲取執行計劃
- [20220422]為什麼執行不報錯.txt
- 看懂Oracle中的執行計劃Oracle
- oracle中開啟執行計劃Oracle
- oracle中執行計劃中的cardinalityOracle
- 執行計劃
- 為什麼進行統計分析執行效率反而更差呢?
- sql執行計劃變更和刪除快取中執行計劃的方法SQL快取
- 我為什麼不再推薦RxJavaRxJava
- 【React】為什麼我不再使用setState?React
- 為什麼我不再用 .NET 框架框架
- 為什麼我不再使用MVC框架?MVC框架
- 怎麼穩固執行計劃<轉>
- SQLSERVER中得到執行計劃的方式SQLServer
- (4) MySQL中EXPLAIN執行計劃分析MySqlAI
- MySQL中in(常量列表)的執行計劃MySql
- 為什麼 Java 8 中不再需要 StringBuilder 拼接字串JavaUI字串
- 執行緒join為什麼在解構函式中執行緒函式
- [20210926]並行執行計劃疑問.txt並行
- 分析執行計劃優化SQLORACLE的執行計劃(轉)優化SQLOracle
- oracle sqlprofile 固定執行計劃,並遷移執行計劃OracleSQL
- 【sql調優之執行計劃】獲取執行計劃SQL
- 為什麼我不再做.NET開發
- SYBASE執行計劃
- MySQL 執行計劃MySql
- MySQL執行計劃MySql
- sql 執行計劃SQL
- ORACLE執行計劃Oracle