oracle11.2.0.3升級到11.2.0.4出現查詢效能問題,分析處理
在上次我們的部落格中提到幫客戶升級oda一體機,將資料庫從oracle 11.2.0.3升級到oracle 11.2.0.4,順利升級後,卻出現了一些效能問題,比如說查詢表空間的情況時,效能比以前下降了很多,執行時間較長,經過檢查分析後發現是統計資訊缺失所致,現在把整個過程記錄下來與大家分享。
1、升級完成後,客戶在執行這條語句時,相當慢
SELECT a.tablespace_name,
a.bytes total,
b.bytes used,
c.bytes free,
(b.bytes * 100) / a.bytes "% USED ",
(c.bytes * 100) / a.bytes "% FREE "
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
AND a.tablespace_name = c.tablespace_name
order by a.tablespace_name;
大概使用了好幾分鐘,根據我們以前的經驗判斷,懷疑可能是回收站可能有大量刪除的物件所致
所以直接對回站進行處理
SQL> select count(*) from dba_recyclebin;
COUNT(*)
----------
6455
SQL> purge recyclebin;
Recyclebin purged.
處理好後,我們又重新執行那語句,但仍然非常慢,這個時候感覺奇怪了,於是我們對執行計劃進行分析
2、分析執行計劃後,找到疑點
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 40 | TABLE ACCESS FULL | TS$ | 12 | 312 | 5 (0)|
| 41 | FIXED TABLE FIXED INDEX | X$KTFBFE (ind:1) | 7 | 273 | 0 (0)|
| 42 | INDEX UNIQUE SCAN | I_FILE2 | 1 | 6 | 1 (0)|
| 43 | NESTED LOOPS | | 1 | 136 | 16 (57)|
| 44 | NESTED LOOPS | | 1 | 130 | 15 (60)|
| 45 | MERGE JOIN | | 1 | 65 | 7 (15)|
| 46 | TABLE ACCESS BY INDEX ROWID| RECYCLEBIN$ | 1 | 39 | 1 (0)|
| 47 | INDEX FULL SCAN | RECYCLEBIN$_TS | 1 | | 1 (0)|
| 48 | SORT JOIN | | 12 | 312 | 6 (17)|
| 49 | TABLE ACCESS FULL | TS$ | 12 | 312 | 5 (0)|
| 50 | FIXED TABLE FULL | X$KTFBUE |100000 | 6500K| 8 (100)|
在這裡,我們看到X$KTFBUE使用全表掃描。透過官網,我們可以看到
x$ktfbue:kernel transaction, file bitmap free extents,Free extent bitmap in file header for LMT (equivalent to fet$ in DMT);
這個表是記錄空閒的區塊的,對這表進行的是全表掃描,問題應該就出在這裡
3、解決和處理問題
SQL> select num_rows, last_analyzed from dba_tables where table_name = 'X$KTFBUE';
no rows selected
沒有統計資訊
於是,我們對該表進行統計分析
SQL> exec DBMS_STATS.GATHER_TABLE_STATS ('SYS', 'X$KTFBUE');
PL/SQL procedure successfully completed.
分析結束後,很快完成
09:16:50 SQL> SELECT a.tablespace_name,
a.bytes total,
16:08:53 2 16:08:53 3 b.bytes used,
16:08:53 4 c.bytes free,
16:08:53 5 (b.bytes * 100) / a.bytes "% USED ",
16:08:53 6 (c.bytes * 100) / a.bytes "% FREE "
16:08:53 7 FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
16:08:53 8 WHERE a.tablespace_name = b.tablespace_name
16:08:53 9 AND a.tablespace_name = c.tablespace_name
16:08:53 10 order by a.tablespace_name;
。。。。。。。。。。。
11 rows selected.
Elapsed: 00:00:00.85
一秒鐘內顯示出來,比先前一分鐘都出不來,快了相當多!到此問題解決
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29371470/viewspace-1184831/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle RAC 10.2.0.5升級到11.2.0.4遇到的問題Oracle
- Oracle 11.2.0.4升級到12.2.0.1Oracle
- Oracle多層級查詢相容的效能問題Oracle
- 資料庫升級問題處理一則資料庫
- Oracle 12c升級檢查問題分析Oracle
- oracle資料庫升級11.2.0.3升級到11.2.0.4Oracle資料庫
- 使用DBUA升級 Oracle 11.2.0.4到Oracle 19C的問題記錄Oracle
- RAC升級到10.2.0.4碰到的幾個問題及處理辦法
- 從Oracle 11.2.0.4 BUG到Oracle子查詢展開分析Oracle
- oracle rac 11.2.0.3 升級到11.2.0.4Oracle
- oracle for windows 11.2.0.1升級到11.2.0.4OracleWindows
- Nuxt升級2.0.0時出現的問題UX
- SUSE配置HANA出現需要升級gcc問題GC
- oracle 10g crs 10.2.0.3 升級到10.2.04不成功問題處理Oracle 10g
- 使用並查集處理集合的合併和查詢問題並查集
- job處理緩慢的效能問題排查與分析
- DELETE TABLE資料後,查詢變慢,問題處理delete
- 靜默升級oracle 11g (從11.2.0.1升級到11.2.0.4)Oracle
- 新建partition出現 device busy問題處理dev
- oracle資料庫11.2.0.3升級到11.2.0.4Oracle資料庫
- RAC升級11.2.0.1到11.2.0.4的實戰
- 升級oracle到10.2.0.3後出現ORA-01092的處理辦法Oracle
- Android studio 升級到3.1出現的問題Caused by: java.util.NoSuchElementExceptionAndroidJavaException
- SQL查詢效能分析SQL
- 一次效能問題原因查詢
- SQLAlchemy in 查詢空列表問題分析SQL
- crontab 問題檢查與處理
- oracle 9.2.0.4升級到9.2.0.8時exp匯出時遇到的問題Oracle
- DC 升級/降級事件處理事件
- .net異常處理的效能問題
- 伺服器啟動出現問題如何處理伺服器
- 探索Oracle之資料庫升級二 11.2.0.3升級到11.2.0.4完整步驟Oracle資料庫
- oracle cluster 10.2.0.1 for aix 6.1 升級到10.2.0.4會出現vip offline問題OracleAI
- 圖形化升級單機oracle 11.2.0.1 到 11.2.0.4Oracle
- 圖形化升級單機oracle 11.2.0.4 到 12.2.0.1Oracle
- JVM問題分析處理手冊JVM
- 記一次row cache lock引起的效能問題分析處理
- Oracle效能問題檢查 - 常用查詢指令碼(final)Oracle指令碼