1、CPU接近100% nmon數(shù)據(jù) 8月5日在9:209:40之間,出現(xiàn)CPU接近100%的情況,特點表現(xiàn)為9:20左右CPU急劇攀升,在9:45左右又快速下降 2、原因分析結(jié)果總述 2.1 持續(xù)時間與恢復(fù)方式 此次CPU攀高時間持續(xù)約20分鐘,在無人工干預(yù)的情況下自動恢復(fù) 2.2 原因分析
1、CPU接近100% nmon數(shù)據(jù)
8月5日在9:20—9:40之間,出現(xiàn)CPU接近100%的情況,特點表現(xiàn)為9:20左右CPU急劇攀升,在9:45左右又快速下降
2、原因分析結(jié)果總述
2.1 持續(xù)時間與恢復(fù)方式
此次CPU攀高時間持續(xù)約20分鐘,在無人工干預(yù)的情況下自動恢復(fù)
2.2 原因分析總述:
經(jīng)過分析,原因為:4條SQL語句ORACLE優(yōu)化器對LB_T_XXXVIDER視圖、LB_T_XXXJECT_PROVIDER表、LA_XXCKAGE表的基數(shù)數(shù)據(jù)評估發(fā)生了巨大的差錯,導(dǎo)致選擇了錯誤的執(zhí)行計劃,消耗大量的CPU資源
2.3 錯誤執(zhí)行計劃估算數(shù)據(jù)與正確執(zhí)行計劃估算數(shù)據(jù)對比
此處為選擇一條最嚴(yán)重的SQL語句為例,其它語句原因相同
錯誤執(zhí)行計劃基數(shù)估算值 |
Execution Plan
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
正確執(zhí)行計劃基數(shù)估算值 |
Execution Plan
|
說明上面統(tǒng)計信息與實際數(shù)據(jù)存在非常大的差異,是引起執(zhí)行計劃錯誤的真正原因
2.4 錯誤執(zhí)行計劃與正確執(zhí)行計劃CPU資源消耗差異巨大對比
此處為選擇一條最嚴(yán)重的SQL語句為例,其它語句比例相近
SQL ID: bj75p9188y410
# |
Plan Hash Value |
Total Elapsed Time(ms) |
Executions |
1st Capture Snap ID |
Last Capture Snap ID |
1 |
3990363694 |
4,585,425 |
9 |
33676 |
33677 |
2 |
6178145 |
2,838 |
2 |
33677 |
33677 |
3 |
2354817963 |
1,461 |
1 |
33677 |
33677 |
錯誤執(zhí)行計劃CPU消耗是最優(yōu)執(zhí)行計劃CPU消耗的348倍
2.5 問題自動修復(fù)原因
ORACLE11G 的新功能cardinality feedback可以在上次運行完成后,得到上一次運行的基數(shù)真正結(jié)果,智能的調(diào)整后面語句運行時的執(zhí)行計劃,通過cardinality feedback功能得到準(zhǔn)確基數(shù)數(shù)據(jù)后調(diào)整的執(zhí)行計劃,會給出下面提示:
cardinality feedback used for this statement
3、數(shù)據(jù)庫時間與AWR快照對應(yīng)信息
此在列出時間與AWR快照對應(yīng)信息的原因為后續(xù)分析依賴時間與快照的關(guān)系,展示階段性數(shù)據(jù)
序號 |
snap_id |
BEGIN_INTERVAL_TIME |
END_INTERVAL_TIME |
1 |
33675 |
05-8月 -13 08.30.41.054 |
05-8月 -13 09.00.09.786 |
2 |
33676 |
05-8月 -13 09.00.09.786 |
05-8月 -13 09.30.10.502 |
3 |
33677 |
05-8月 -13 09.30.10.502 |
05-8月 -13 10.00.26.364 |
4 |
33678 |
05-8月 -13 10.00.26.364 |
05-8月 -13 10.30.18.791 |
5 |
33679 |
05-8月 -13 10.30.18.791 |
05-8月 -13 11.00.24.540 |
4、總體原因具體分析
8月5日9:00—10:00AWR報告分析
SQL ordered by CPU Time
|
分析:
(1) 上述標(biāo)紅色語句共四條,其中第4條和第10條其實為同一條SQL語句
(2) 上述四條標(biāo)紅色SQL語句分析為最消耗CPU資源的語句
(3) 上述四條標(biāo)紅色SQL語句在出問題前都沒有運行,基本都集中在9:00以后開始運行
(4) 上述標(biāo)紅色語句的問題有共同特性,都調(diào)用了LB_T_XXXVIDER視圖、LB_T_XXXJECT_PROVIDER表、LA_XXCKAGE
(5) 上述標(biāo)紅色語句都是因為優(yōu)化器對LB_T_XXXVIDER視圖、LB_T_XXXJECT_PROVIDER表、LA_XXCKAGE表的基數(shù)數(shù)據(jù)評估發(fā)生了巨大的差錯,導(dǎo)致選擇了錯誤的執(zhí)行計劃,消耗大量的CPU資源,導(dǎo)致CPU接近100%
(6) 上述標(biāo)紅色語句都是在幾次錯誤選擇后有效的利用了ORACLE11g的新特性cardinalityfeedback功能,最終得到準(zhǔn)確的基數(shù)數(shù)據(jù),自行修正了執(zhí)行計劃
5、問題語句逐條剖析
5.1 第一條:SQL_ID:bj75p9188y410
SQL ID: bj75p9188y410
# |
Plan Hash Value |
Total Elapsed Time(ms) |
Executions |
1st Capture Snap ID |
Last Capture Snap ID |
1 |
3990363694 |
4,585,425 |
9 |
33676 |
33677 |
2 |
6178145 |
2,838 |
2 |
33677 |
33677 |
3 |
2354817963 |
1,461 |
1 |
33677 |
33677 |
分析:
(1)標(biāo)紅色的為錯誤的執(zhí)行計劃及其統(tǒng)計信息
(2)9:00—10:00之間,共發(fā)生9次錯誤的執(zhí)行計劃
(3)在前面發(fā)生9次錯誤的執(zhí)行計劃之后,由于ORACLE 11G的cardinality feedback新功能,最終得到準(zhǔn)確的基數(shù),在9:30-10:00之間,自動糾正了執(zhí)行計劃
5.2 第二條:SQL_ID:gmfktzfsd6hj3
SQL ID: gmfktzfsd6hj3
# |
Plan Hash Value |
Total Elapsed Time(ms) |
Executions |
1st Capture Snap ID |
Last Capture Snap ID |
1 |
617277444 |
2,602,874 |
6 |
33677 |
33678 |
2 |
2335536944 |
2,725 |
2 |
33678 |
33678 |
3 |
687995303 |
1,437 |
1 |
33678 |
33678 |
分析:
(1)標(biāo)紅色的為錯誤的執(zhí)行計劃及其統(tǒng)計信息
(2)9:30—10:30之間,共發(fā)生6次錯誤的執(zhí)行計劃
(3)在前面發(fā)生6次錯誤的執(zhí)行計劃之后,由于ORACLE 11G的cardinality feedback新功能,最終得到準(zhǔn)確的基數(shù),在10:00-10:30之間,自動糾正了執(zhí)行計劃
5.3 第三條:SQL_ID:1d44jc4at7xt6
SQL ID: 1d44jc4at7xt6
# |
Plan Hash Value |
Total Elapsed Time(ms) |
Executions |
1st Capture Snap ID |
Last Capture Snap ID |
1 |
3265929876 |
2,029,525 |
4 |
33676 |
33677 |
2 |
2949667951 |
19,116 |
13 |
33676 |
33677 |
3 |
1227972422 |
1,761 |
1 |
33676 |
33677 |
分析:
(1)標(biāo)紅色的為錯誤的執(zhí)行計劃及其統(tǒng)計信息
(2)9:00—10:00之間,共發(fā)生4次錯誤的執(zhí)行計劃,其中
(3)在前面發(fā)生4次錯誤的執(zhí)行計劃之后,由于ORACLE 11G的cardinality feedback新功能,最終得到準(zhǔn)確的基數(shù),在9:30-10:00之間,自動糾正了執(zhí)行計劃
5.4 第四條:SQL_ID:fh86uz0ch9z9w
SQL ID: fh86uz0ch9z9w
# |
Plan Hash Value |
Total Elapsed Time(ms) |
Executions |
1st Capture Snap ID |
Last Capture Snap ID |
1 |
3265929876 |
1,247,089 |
4 |
33676 |
33681 |
2 |
2949667951 |
2,624 |
2 |
33681 |
33681 |
3 |
1227972422 |
1,291 |
1 |
33681 |
33681 |
分析:
(1)標(biāo)紅色的為錯誤的執(zhí)行計劃及其統(tǒng)計信息
(2)9:00—11:30之間,共發(fā)生4次錯誤的執(zhí)行計劃,其中兩次發(fā)生在9:00-9:30間
(3)在前面發(fā)生4次錯誤的執(zhí)行計劃之后,由于ORACLE 11G的cardinality feedback新功能,最終得到準(zhǔn)確的基數(shù),在11:00-11:30之間,自動糾正了執(zhí)行計劃
6、引發(fā)執(zhí)行計劃錯誤原因分析
6.1 表統(tǒng)計信息統(tǒng)計歷史
6.1.1 LB_T_XXXJECT_PROVIDER
序號 |
用戶名 |
表名 |
分析歷史時間 |
1 |
BIDPRO |
LB_T_XXXJECT_PROVIDER |
11-8月 -13 20.06.16.630512 |
2 |
BIDPRO |
LB_T_XXXJECT_PROVIDER |
03-8月 -13 20.22.23.332654 |
3 |
BIDPRO |
LB_T_XXXJECT_PROVIDER |
26-7月 -13 22.18.08.386638 |
在8月5日開標(biāo)前,該表已經(jīng)有10天未統(tǒng)計
6.1.2 LA_XXCKAGE
序號 |
用戶名 |
表名 |
分析歷史時間 |
1 |
BIDPRO |
LA_XXCKAGE |
15-8月 -13 20.01.28.232128 |
2 |
BIDPRO |
LA_XXCKAGE |
09-8月 -13 20.04.35.224700 |
3 |
BIDPRO |
LA_XXCKAGE |
26-7月 -13 20.08.49.666682 |
在8月5日開標(biāo)前,該表已經(jīng)有10天未統(tǒng)計
6.1.3 XXCC_SUPPLIER
序號 |
用戶名 |
表名 |
分析歷史時間 |
1 |
BIDPRO |
XXCC_SUPPLIER |
18-8月 -13 20.13.21.031834 |
2 |
BIDPRO |
XXCC_SUPPLIER |
10-8月 -13 20.07.04.740643 |
3 |
BIDPRO |
XXCC_SUPPLIER |
31-7月 -13 22.00.39.107474 |
4 |
BIDPRO |
XXCC_SUPPLIER |
22-7月 -13 22.01.26.170018 |
在8月5日開標(biāo)前,該表已經(jīng)有5天未統(tǒng)計
6.1.4 XXCC_SUPPLIER_CONTACT
序號 |
用戶名 |
表名 |
分析歷史時間 |
1 |
BIDPRO |
XXCC_SUPPLIER_CONTACT |
17-8月 -13 20.03.30.834585 |
2 |
BIDPRO |
XXCC_SUPPLIER_CONTACT |
09-8月 -13 22.03.30.402420 |
3 |
BIDPRO |
XXCC_SUPPLIER_CONTACT |
26-7月 -13 22.07.06.696581 |
在8月5日開標(biāo)前,該表已經(jīng)有10天未統(tǒng)計
6.2 表數(shù)據(jù)變化分析
6.2.1 8月5日前最后一次統(tǒng)計時間至8月5日時的block_changes數(shù)量
序號 |
表名 |
最后一次統(tǒng)計時間 |
block_changes |
1 |
LB_T_XXXJECT_PROVIDER |
26-7月 -13 22.18 |
158560 |
2 |
LA_XXCKAGE |
26-7月 -13 20.08 |
168224 |
3 |
XXCC_SUPPLIER |
31-7月 -13 22.00 |
608 |
4 |
XXCC_SUPPLIER_CONTACT |
26-7月 -13 22.07 |
576 |
6.3 錯誤執(zhí)行計劃預(yù)估數(shù)據(jù)量與真正數(shù)據(jù)量差異對比
SQL_ID |
執(zhí)行計劃對錯區(qū)分 |
對表的ROWS評估數(shù) |
|||
XXCC_SUPPLIER_CONTACT |
XXCC_SUPPLIER |
LA_XXCKAGE |
LB_T_XXXJECT_PROVIDER |
||
bj75p9188y410 |
錯誤執(zhí)行計劃 |
30058 |
1 |
1 |
1 |
正確執(zhí)行計劃 |
10M |
26139 |
1 |
347 |
|
gmfktzfsd6hj3 |
錯誤執(zhí)行計劃 |
30058 |
1 |
1 |
1 |
正確執(zhí)行計劃 |
10M |
26139 |
1 |
347 |
|
1d44jc4at7xt6 |
錯誤執(zhí)行計劃 |
30058 |
1 |
1 |
1 |
正確執(zhí)行計劃 |
10M |
26139 |
1 |
347 |
|
fh86uz0ch9z9w |
錯誤執(zhí)行計劃 |
30058 |
1 |
1 |
1 |
正確執(zhí)行計劃 |
7763K |
26139 |
1 |
347 |
7、解決方案建議
建議對上述四條發(fā)生執(zhí)行計劃錯誤的SQL語句,采用SQL_PROFILE對執(zhí)行計劃進行固定,可以避免下次開標(biāo)時出現(xiàn)同樣的問題
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com