- 论坛徽章:
- 0
|
本帖最后由 xmherz 于 2015-08-26 15:12 编辑
大家好,我这边有张CTBA表采用年度分区,该表2013年、2014年都有约100万左右的数据,2015年目前只有几千条数据,
该表同时在几个字段上设计了索引,比如ORG_CD字段。数据库为RAC 2台集群,采用赛门铁克的存储(不是很懂)。
问题是这样的,以下这句SQL,总是把AWR报告里面User I/O Wait Time、Gets、Reads的TOP SQL都占了,但是这句SQL本身执行速度不慢,可能在0.8秒左右。
跟踪它的执行计划和统计信息,主要是consistent gets达到3万多,偶尔physical reads也会达到3万多。
SELECT count(*) as col_0_0_ from cell.CS_TOBACCO_BIZ_AUDIT cstobaccob0_ where cstobaccob0_.DATA_STATE='0' and cstobaccob0_.REVERSAL_STATUS='0' and cstobaccob0_.BUSINESS_YEAR='2015' and cstobaccob0_.ORG_CD='293102A';
查询统计和AWR报告详见附件。
有执行过以下SQL更新统计信息。
exec dbms_stats.gather_table_stats('CELL','CS_TOBACCO_BIZ_AUDIT');
select table_name,partition_name,last_analyzed,partition_position,num_rows,GLOBAL_STATS,USER_STATS,STALE_STATS from dba_tab_statistics t WHERE t.OWNER='CELL' AND table_name ='CS_TOBACCO_BIZ_AUDIT' ;
查询结果:
TABLE_NAME PARTITION_NAME LAST_ANAL PARTITION_POSITION NUM_ROWS GLO USE STA
------------------------------ ------------------------------ --------- ------------------ ---------- --- --- ---
CS_TOBACCO_BIZ_AUDIT 26-AUG-15 2020525 YES NO NO
CS_TOBACCO_BIZ_AUDIT P2013 26-AUG-15 1 1112284 YES NO NO
CS_TOBACCO_BIZ_AUDIT P2014 26-AUG-15 2 899009 YES NO NO
CS_TOBACCO_BIZ_AUDIT P2015 26-AUG-15 3 9230 YES NO NO
现在我疑惑的是它的consistent gets或者physical reads为什么会这么高达到3万多,这样会不会有问题。
将这个库导到另外一台WINDOWS机器上面,上面的查询SQL产生的consistent gets就只有几百,请各位大侠帮忙分析下,问题可能出在哪里。
|
|