- 最后登录
- 2013-8-27
- 在线时间
- 6 小时
- 威望
- 0
- 金钱
- 24
- 注册时间
- 2013-3-5
- 阅读权限
- 10
- 帖子
- 7
- 精华
- 0
- 积分
- 0
- UID
- 941
|
1#
发表于 2013-8-6 11:37:36
|
查看: 7067 |
回复: 10
OS: Linux JDEDB 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
Oracle 11.2.0.3 Enterprise 64bit
前台应用执行了一个程序,然后一整天都处于执行状态。查询数据库状态,发现一句Update语句已经执行了6万多秒,rows_processed为354,executions为2,SQL语句如下:
UPDATE PRODDTA.F0911
SET GLPOST =:BND1,
GLALT4 =:BND2,
GLUSER =:BND3,
GLPID =:BND4,
GLJOBN =:BND5,
GLUPMJ =:BND6,
GLUPMT =:BND7
WHERE ( GLPOST = :KEY1
AND GLICUT = :KEY2
AND GLICU = :KEY3 );
根据执行计划,该SQL走了一个索引,为range scan,cost为5。索引字段为GLPOST, GLICUT, GLICU, GLLT, GLDGJ, GLDOC, GLKCO DESC, GLDCT DESC, GLJELN, GLEXTL。
F0911这张表数据量约为9354216行,141个字段。
查询下来发现该session并没有被block,没有其他的行级锁。数据库服务器中有一个oracle进程CPU占用一直保持在100%,经查是在执行这句SQL。
今早发现该SQL已经执行了10万多秒,rows_processed为354,executions为2,均没有变化。那个oracle进程CPU占用仍为100%。
烦请各位大神看一下,愿意酬谢。 |
|