某交易查询库主要使用Oracle 12.1.0.2.0的内存中的特性缓存三张按月分区的大表,在内存中组件主要是针对OLAP应用的,而这种应用绝大部分的操作都是查询,而且很多时候只关心表中特定的一个或多个列,所以内存中的特性还可以指定只把表中的特定的一个或多个列加载到在内存区域当中。开始的情况由于并发等多种因素,跑的还是很快的。随着时间的推移,三个表的数据量越来越大,所占用内存资源也越来越多。总是出现这样那样的问题。如今年上半年该系统的一次故障。
完成r
1选择wait_class_id wait_class,计数()问
2 dba_hist_active_sess_history
3在12073年和12074年之间snap_id
4 group by wait_class_id wait_class
5 命令3 desc
WAIT_CLASS_ID WAIT_CLASS问 <人力资源/>
12472用户I/O 1740759767
2363
3386400367提交2301
1893977003其他1093
3875070507并发132
4217450380应用程序67
4108307767系统I/O 21
3290255840配置1
8行。
查询对应的IO情况所反应到数据库中的事件是什么
EVENT_ID事件问
3056446529阅读其他会话6149
834992820 db文件并行读取4756
2652584166 db文件顺序读取1418
3926164927直接路径读取993
506183215 db文件分散阅读56
根据其等待时间,查看对应的SQL文本为:
选择
(选择tmp_page。, rownum row_id
(选择t.TRAN_UUID、
t.IN_MNO
t。,
t.CARD_TYP EX_MNO merchantCode
t.CARD_DISP_NO,
t.TRAN_RESPONSE_CD,
t.TRAN_CD,
t.TRAN_STS,
t.TRAN_SEQ_NO,
,
t.TRAN_BAT_NO to_char (t。TRAN_DT TRAN_DATE_TIME, '名称'),
to_char (t。TRAN_DATE_TIME, TRAN_TM HH24MISS),
t。,
t.TERMINAL_NUM TRAN_IN_MOD payWay
t.POS_SIGN_FLG,
t.TRAN_AMT,
t.RECEIVER_FEE_AMT,
t.TRAN_FLG,
t。ROOT_XXXX_ORG_NM belongtoOrgNm,
t。BUSINESS_EMP_NM empNm,
t。XXXX_ORG_NM directlyOrg
t.XXXX_ORG_NO,
t。XXXX_ORG_PATH
从T_SSP_TRANDATA_MPOS t t
。TRAN_DATE TO_DATE之间(:1、“名称”)和
TO_DATE(2, '名称')
和t。ROOT_XXXX_ORG_NO=: 3
和t。XXXX_ORG_PATH: 4 | |‘%’
ORDER BY t。TRAN_DATE_TIME DESC) tmp_page
rownum & lt;=:5)
row_id祝辞
执行计划类似如下: