RAC中一次混乱的性能诊断过程5

简介: 开始我觉得没有过分耗时的语句就不算有性能问题,所以没有关注,后来我又通过语句查看了CLUSTER等待的SQL语句如下: select wait_class_id, wait_class, count(*) cnt    from dba_hist_activ...

开始我觉得没有过分耗时的语句就不算有性能问题,所以没有关注,后来我又通过语句查看了CLUSTER等待的SQL语句如下:

select wait_class_id, wait_class, count(*) cnt

   from dba_hist_active_sess_history

   where snap_id between 7744 and 7745

   group by wait_class_id, wait_class

   order by 3

select event_id, event, count(*) cnt from dba_hist_active_sess_history

  where snap_id between 7744 and 7745 and wait_class_id=3871361733

  group by event_id, event

  order by 3;

   select sql_text from dba_hist_sqltext where sql_id in

   (select sql_id from dba_hist_active_sess_history

   where snap_id between 7744 and 7745

   and event_id in (661121159)

   group by sql_id);

   最后得出的语句是:

 

select ti.serialno itemNo,       ti.insuredcode

select ti.serialno itemNo,       ti.insuredcode

select ti.serialno itemNo,       ti.insuredcode

select ti.serialno itemNo,       ti.insuredcode

select ti.serialno itemNo,       ti.insuredcode

select ti.serialno itemNo,       ti.insuredcode

select ti.serialno itemNo,       ti.insuredcode

select ti.serialno itemNo,       ti.insuredcode

select ti.serialno itemNo,       ti.insuredcode

select ti.serialno itemNo,       ti.insuredcode

这个也验证了AWRRPT的结果,然后我转向查看SEGMENT信息,我这里只给出了语句一部分,我查看了语句完全相同。

Segments by Global Cache Buffer Busy

  • % of Capture shows % of GC Buffer Busy for each top segment compared
  • with GC Buffer Busy for all segments captured by the Snapshot

Owner

Tablespace Name

Object Name

Subobject Name

Obj. Type

GC Buffer Busy

% of Capture

PROD

PROD_TBS

Test100

 

TABLE

117,030

99.99

Back to Segment Statistics
Back to Top

Back to Segment Statistics
Back to Top

Segments by Current Blocks Received

  • Total Current Blocks Received: 8,649,348
  • Captured Segments account for 99.6% of Total

Owner

Tablespace Name

Object Name

Subobject Name

Obj. Type

Current Blocks Received

%Total

PROD

PROD_TBS

Test100

 

TABLE

8,320,599

96.20

Back to Segment Statistics

我这里给出了第一行,我觉得可以说明问题了,然后我查看了语句,发现语句确实包含了TEST100这个表,这完全说明前期的分析是不对的。真正引起集群等待的原因是对TEST100块进行传递的结果,一切都是它的问题。最后我查看了这些语句,这些语句都对表TEST100进行FULL TABLE SCAN,所以我觉得只要改善了TEST100 FULL TABLE SCAN应该可以解决一些问题了。不知道大家觉得如何?

 

总结:

RAC的性能诊断中,特别是涉及到集群等待事件比如GC BUFFER BUSY这样的事件,不要片面的认为这个问题一定是由逻辑读最高的语句引起的,很可能最耗时最高逻辑读的语句不是引起问题的根源。最好结合集群等待对象和语句进行分析。同时通过语句提取信息进行验证。

相关文章
|
Oracle Java 关系型数据库
RAC 环境中 gc block lost 和私网通信性能问题的诊断
对于每个节点,以及集群汇总统计信息中的global cache数据块丢失的统计信息("gc cr block lost" 和/或 "gc current block lost") 代表了私网通信的包处理效率低或者包的处理存在异常。
261 0
|
SQL 索引
RAC中一次混乱的性能诊断过程4
Segments by Logical Reads Total Logical Reads: 584,021,980 Captured Segments account for 99.
895 0
|
监控 Oracle 关系型数据库
Swingbench测试云上Oracle RAC性能
谁说云上不能跑Oracle RAC?
5227 0
|
Oracle 关系型数据库 Java
【MOS】RAC 环境中 gc block lost 和私网通信性能问题的诊断 (文档 ID 1674865.1)
【MOS】RAC 环境中 gc block lost 和私网通信性能问题的诊断 (文档 ID 1674865.1) 文档内容 症状   ...
2230 0
|
监控 Oracle 关系型数据库
配置升级云上Oracle RAC性能
阿里云上Oracle RAC环境性能到底表现如何,通过环境配置,RAC架构调整,以及Oracle RAC数据库的优化等多重调整后,看RAC在高配ECS上的表现。由于配置的提升,压测策略有所调整,由RAC分发压力改为业务分割,每个节点跑独立的业务,减少争用,充分利用资源提升带来的好处,方便达到性能最优配置。
4382 0
|
数据库
【MOS】RAC 环境中最常见的 5 个数据库和/或实例性能问题 (文档 ID 1602076.1)
              >>>        >                &         ...
817 0
|
SQL Java 数据库
RAC中一次混乱的性能诊断过程 1
                     RAC中一次混乱的性能诊断过程    众所周知在RAC中,问题很可能来自于CACHE FUSION(内存融合)的机制,简单的说就是CACHE BUFFER中的块在内存融合的机制下通过LMD进程进行传递,比如我节点1...
740 0
|
SQL 数据库
RAC中一次混乱的性能诊断过程2
SQL ordered by Elapsed Time Resources reported for PL/SQL code includes the resources used by all SQL statements called by the code.
757 0