分类: Oracle
2014-06-24 15:47:37
创建sequence的时候会给定一个默认cache值20,意味着每次数据库取20个sequence放入sharedpool中供应用使用,每次获取sequence的操作需占用共享池资源,因此,当在大量批处理,或者频繁的dml业务时,需要适当增大cache值。
xx系统和xx系统,xx系统均有过此调整,开发人员在根据业务设计来使用sequence时,需要考虑到sequence的增长速度,sequence使用场景是给什么业务类型使用的,比如一个sequence可能在1个月内增长100万,均匀在分布在每个时段,而另外一个应用是批处理,比如财务月结,一个月跑一次,一次100万,那么这两个sequence的cache取值选择将有很大差异。
小结:
在设计开发阶段,应该了解数据行的增长情况,如涉及sequence,则需考虑sequence缓存值大小的设置。而等待事件的表现,往往是 row cache lock,enq:SQ-contention较高。