联系:手机/微信(+86 17813235971) QQ(107644445)
标题:一次数据库优化全过程分析
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
最近对客户的一个数据库进行了优化,在本次优化过程中,主要涉及以下方面:
1. 确保系统有足够的内存,处理方法配置Hugepage,减小SGA
2. 优化因为主键表频繁插入引起的user$,con$,cdef$递归查询sql
SQL> select c.name, u.name from con$ c, cdef$ cd, user$ u where 2 c.con# = cd.con# and cd.enabled = :1 and c.owner# = u.user#; Execution Plan ---------------------------------------------------------- Plan hash value: 2409458995 ----------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ----------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 3820 | 164K| 38 (6)| 00:00:01 | |* 1 | HASH JOIN | | 3820 | 164K| 38 (6)| 00:00:01 | | 2 | TABLE ACCESS FULL | USER$ | 64 | 896 | 3 (0)| 00:00:01 | |* 3 | HASH JOIN | | 3820 | 111K| 34 (3)| 00:00:01 | |* 4 | TABLE ACCESS FULL| CDEF$ | 3820 | 34380 | 25 (0)| 00:00:01 | | 5 | TABLE ACCESS FULL| CON$ | 6368 | 130K| 8 (0)| 00:00:01 | -----------------------------------------------------------------------------
具体见:一次数据库优化全过程分析
有意思,不过我觉得sql profile应该可以固定.
没有环境,无法做这个测试.
第一次优化后,session数下降的可真大呀,
未优化前,活动的会话数是多少?
你好,冒昧请教.
PDF文档里:
DB Time: 108,269.34 (mins) 。
我另外看到文档 http://blog.itpub.net/12679300/viewspace-1182396/ 里面说:
DB Time 总时间=Elapsed*cpu数
108,269.34>>60*8
想请教一下,是什么情况。另外那份文档里,弄错了?
求教,谢谢。
DB Time 总时间=Elapsed*cpu数 这个为什么等于?
惜分飞,
抱歉,我没说准确。
“DB Time 总时间=Elapsed*cpu数” 我想表达的应该是 “CPU总时间=Elapsed*cpu(核)数”
“DB Time”应该小于等于“CPU总时间”的。
我看到PDF里:DB Time:108,269.34 (mins) 远远大于 “CPU总时间”
想请教一下,是什么回事?
cpu的总时间指的是cpu number* awr收集的时间