診斷一次Oracle日誌切換頻繁的問題
阿新 • • 發佈:2019-01-09
日誌切換,就是生成的日誌太大,資料塊的變化太頻繁。
一個小時日誌切換31次。
重點來了,看segments by DB Blocks changes,看是什麼物件造成的。
通過這些物件找到相應的SQL語句,定位就是它們。對這種業務,有兩種方法,1. delete改為truncate 2.加大redo log file的大小
36p9tcbryxnq4 delete from "VIEW_TICKET"
213rsbk7216pc delete from "V_DATA_RANGE"
0mv6h8360myzu delete from "MV_TCM_WORKFORM"
2u4qz8gfqs1z7 INSERT /*+ BYPASS_RECURSIVE_CHECK */ INTO "MV_TCM_WORKFORM" select t.*, sysdate as s from v_tcm_workform t
Snap Id | Snap Time | Sessions | Cursors/Session | |
---|---|---|---|---|
Begin Snap: | 14560 | 09-Dec-15 04:00:48 | 59 | 4.5 |
End Snap: | 14561 | 09-Dec-15 05:00:59 | 54 | 4.6 |
Elapsed: | 60.19 (mins) | |||
DB Time: | 82.47 (mins) |
1s產生2M的日誌。
Per Second | Per Transaction | Per Exec | Per Call | |
---|---|---|---|---|
DB Time(s): | 1.4 | 3.3 | 0.02 | 0.47 |
DB CPU(s): | 1.1 | 2.5 | 0.01 | 0.36 |
Redo size (bytes): | 2,315,310.3 | 5,548,471.3 |
Statistic | Total | per Hour |
---|---|---|
log switches (derived) | 31 | 30.90 |
重點來了,看segments by DB Blocks changes,看是什麼物件造成的。
Segments by DB Blocks Changes
- % of Capture shows % of DB Block Changes for each top segment compared
- with total DB Block Changes for all segments captured by the Snapshot
Owner | Tablespace Name | Object Name | Subobject Name | Obj. Type | DB Block Changes | % of Capture |
---|---|---|---|---|---|---|
TC | TBS_TCI | VIEW_TICKET | TABLE | 7,758,832 | 36.44 | |
TC | TBS_TCI | V_DATA_RANGE | TABLE | 7,076,112 | 33.23 | |
TC | TBS_TCI | MV_TCM_WORKFORM | TABLE | 3,593,664 | 16.88 | |
TBM | TBS_TBM | VIEW_DATAAUTH_ROLE_USER | TABLE | 2,368,016 | 11.12 | |
TC | TBS_TC | RPT_ACCRUALS_DETAIL |
TABLE | 87,648 | 0.41 |
通過這些物件找到相應的SQL語句,定位就是它們。對這種業務,有兩種方法,1. delete改為truncate 2.加大redo log file的大小
36p9tcbryxnq4 delete from "VIEW_TICKET"
213rsbk7216pc delete from "V_DATA_RANGE"
0mv6h8360myzu delete from "MV_TCM_WORKFORM"
2u4qz8gfqs1z7 INSERT /*+ BYPASS_RECURSIVE_CHECK */ INTO "MV_TCM_WORKFORM" select t.*, sysdate as s from v_tcm_workform t