在RAC环境中,序列的Cache问题可能会对性能有着决定性的影响,缺省的序列Cache值为20,这对RAC环境远远不够。如果存在序列号使用的竞争,就可能在数据库中看到明显的队列等待:enq: SQ - contention在RAC情况下,可以将使用频繁的序列Cache值增加到10000,或者更高到50000,这些值在客户的环境中都有采用
创建sequence不指定cache参数的时候oracle默认设置为20,大部分的时候得普通应用不会有性能问题,除了一秒种上万次的SELECT,默认值基本够用,但是最近有个运行了几年的系统在修改程序为并行INSERT的时候响应很慢, 几乎于HANG住,基本的环境是AIX5.3+ORACLE10.1RAC,由于该数据库的特殊性不能直接登录查看等待事件,...
创建sequence不指定cache参数的时候oracle默认设置为20,大部分的时候得普通应用不会有性能问题,除了一秒种上万次的SELECT,默认值基本够用,但是最近有个运行了几年的系统在修改程序为并行INSERT的时候响应很慢, 几乎于HANG住,基本的环境是AIX5.3+ORACLE10.1RAC,由于该数据库的特殊性不能直接登录查看等待事件,...
如果Cache已经指定,我们可以修改Cache 大小。 alter 命令可以修改sequence中除了start 以外的所有参数。 如: alter sequence emp_sequence cache 100; select * from user_sequences where sequence_name=upper(’emp_sequence’); 二. 实验 一个网友RAC 系统上的测试时结果: nocache: 2100s cache =1000: 55s ...
1.4、实例的重启会导致sequence cache失效出现跳号情况。 1.5、事务用到了sequence,并且大量回滚的情况下,也会出现gap的情况。 2、sequence 的cache、nocache、order、noorder属性总结 2.1、cache+noorder 这种属性设置是RAC最佳性能配置,不指定任何属性的情况下,RAC会默认使用这种配置,cache默认20; ...
1. 设置cache为空 2. 创建序列的时候设置为order,即采用cache + order Oracle下关于Sequence的使用有三种情况: 1. cache + noorder 2. nocache 3. cache + order 关于这三种情况具体的技术细节和性能比较,请参考下面的文章: enq:SQ contention / row cache lock / DFS lock handle(SV) 等待事件 说明http:...
如果是已赋予了cache+order属性的sequence,oracle使用SV锁进行同步。SV锁争用问题发生时的解决方法与sq锁的情况相同,就是将cache 值进行适当调整。 在RAC多节点环境下,sequence的Cache属性对性能的影响很大。应该尽量赋予cache+noorder属性,并要给予足够的cache值。如果需要保障顺序,必须赋予cache+order属性。但这时为了保...
NOCACHE Specify NOCACHE to indicate that values of the sequence are not preallocated. If you omit both CACHE and NOCACHE, then the database caches 20 sequence numbers by default. 关于Order 参数的说明: 序参数:oracle默认是NOORDER,如果设置为ORDER;在单实例环境没有影响,在RAC环境此时,多实例实际缓存...
sequence是非常普通的Oracle对象,但如果使用不当,就可能会导致一些性能问题,如下介绍了三个场景。 场景1:RAC下,nocache选项创建频繁使用的sequence 从之前介绍中,我们了解了,当需要读取的sequence值,到达了当前cache的最大值,就会更新seq$的highwater,这样做的目的,就是为...
SQL> create sequence seq_nocache nocache; Sequence created SQL> create sequence seq_cache cache 3; Sequence created 我们先对nocache对象进行实验。我们选择autotrace工具,进行三次调用操作,来观察各种资源使用情况。 --第一次调用; SQL> select seq_nocache.nextval from dual; ...