Recent Posts

RSS Feeds

DBA日记 第二部 (30) 外来的和尚好念经 4月29日 Richard J Warham(下)

今天出现了较大量的latch free争用,通过后面的latch小节可以看到

                                           Pct    Avg   Wait                 Pct

                              Get          Get   Slps   Time       NoWait NoWait

Latch                       Requests      Miss  /Miss    (s)     Requests   Miss

------------------------ -------------- ------ ------ ------ ------------ ------

cache buffers chains        647,517,611    0.1    0.4   5416   20,999,665    1.4

cache buffers lru chain       1,079,718    1.4    0.6    501   19,674,712    7.7

library cache                36,397,178    4.2    0.7  35020      168,674   16.3

library cache load lock           6,312    0.0    1.0      0            0

library cache pin            17,880,285    0.6    0.6   1887            0

library cache pin alloca     12,409,710    0.6    0.7   2024            0

redo allocation               3,037,476    0.2    0.3     62            0

redo copy                            47  100.0    1.0     18    2,618,742    1.0

redo on-disk SCN                639,357    0.0             0            0

redo writing                    778,319    0.0    0.2      0            0

resumable state object               46    0.0             0            0

row cache enqueue latch     266,547,183    5.0    0.0    548            0

row cache objects           273,903,504    6.2    0.1  17014          765    9.8

sequence cache                  188,590    0.0    0.4      0            0

session allocation            4,084,373    0.9    0.6    852            0

session idle bit             30,229,860    0.1    0.5    400            0

session queue latch             913,072    0.0    0.1      0            0

session switching                    59    0.0             0            0

session timer                     1,241    0.0             0            0

shared pool                  23,095,605    4.2    0.2   2018            0

共享池和DB CACHE相关的闩锁都出现了一定的争用。这是CPU出现瓶颈的征兆,IO,内存,CPU都出现瓶颈,这个系统确实有点撑不住了。从Statspack报告来看

Statistic                                      Total     per Second    per Trans

--------------------------------- ------------------ -------------- ------------

CPU used by this session                   2,439,627          678.4         11.7

CPU used when call started                 2,401,482          667.8         11.6

 

每秒消耗的CPU6784毫秒,而一个8 CPU的系统,最多只能提供8000毫秒的CPU时间,Oracle消耗了接近85%CPU资源,比昨天又增加了几个百分点。我回了个邮件,让万科他们注意。

写完邮件,FOXMAIL提示我又有一封新邮件,打开邮件一看,原来是Richard的回信:

Jackson,

 

Mingyu did not give me your name so I will call you Jackson.

I would like to know if you have any specific recommendations for the

database at this system. Are there any tables that you recommend should have

additional indexes added, changes to the code to use indexes rather than

full table scans etc.

The oracle reports I have seen so far only speak of the requirement for

changes/improvements not how these should be done.

Thanks for the comments. I agree with you on the server performance issues. It is not a simple problem to resolve. 

Best regards

Richard

 

看样子洋哥们也发现了全表扫描的问题,通过前一阵子的优化,我已经解决了绝大多数全表扫描的问题,不过仍有一定数量的全表扫描无法避免,因为这个系统是一个c/s/s结构的系统,很多SQL都是根据客户端选择的条件动态生成的,为了确保一些主要的SQL能够通过索引完成,所以在很多模块中都使用了HINT。由于SQL是动态生成的,所以不可避免的会出现对于某些情况,HINT会导致更坏的执行计划。比如说客户端选择了一些过虑条件,生成出的SQL原本使用另外一个索引效率比较高,但是由于SQL中使用了强制HINT,这样就会导致这个SQL会使用错误的索引,反而增大了开销。这种由于程序缺陷导致使用错误的执行计划的情况十分普遍,由于这些情况属于非常用功能,因此虽然有些客户投诉性能问题,开发商也没有给予理会。由于应用架构的问题,开发商想要解决这个问题也十分困难,我曾经建议过他们取消HINT,但是开发商怕取消了HINT会导致常用模块性能下降而一直不敢按照我的建议去修改应用。

快下班的时候,万科打电话过来了,他看到我的邮件后有些着急,从今天的情况来看系统的压力稍微大一些,CPU就有点悬,今天他们观察到的业务最忙的时段,CPU经常冲到100%r队列也达到了20以上。虽然CPU还没有真正出现瓶颈,但是看上去挺悬的。万科问我这几天能不能再做些优化,缓解一下CPU资源。

我告诉万科,我和明喻他们前后一阶段的合同已经结束,老外进场后,新的合同看样子明喻是不会和我签了。目前我真没办法出面做处理,一旦做好了,功劳算老外的,做不好我的责任就大了。

万科听我这么一说就有点着急,今天和Richard开完会后,万科就觉得有点不靠谱,搭测试环境,模拟生产环境,等试验做完,不知道猴年马月了,还不知道能不能找到解决方案呢。于是万科希望我在关键的时候能够帮下忙。

我说关键时刻我可以出手,但是必须让明喻找我,否则我师出无名。万科想了想,我说的也在理,只好遗憾的挂了电话。

 

Permalink     1 Comment



评论:

失去後,才會覺的當初的最好~~=.=+

发表于 睡貓 在 2009年06月26日, 12:03 上午 CST #

发表一条评论:
  • HTML语法: 启用