在高并发的数据库系统中,序列的缓存也要相应的调大。现在看看数据库自己的一个高并发序列的定义。
当我们向数据库发送一个请求时,监听接待,然后oracle会启动一个后台进程(这个进程就是通常所说的数据库并发数,即数据库能够同时启动多少个进程对外提供服务,由processes参数决定)为之服务,然后就分配与之对应的会话sesson,会话的audsid字段(不为0的是外部请求,内部皆为0)由SYS.AUDSES$序列获取,该序列定义如下
CREATE SEQUENCE SYS.AUDSES$ START WITH 210016 MAXVALUE 2000000000 MINVALUE 1 CYCLE CACHE 10000 NOORDER;
缓存为10000,会话分配在数据库中可以归为高并发的一类情况,因为业务繁忙时同一时刻会产生很多会话; 而开发定义的会话通常会在20至50之间,这种情况下如果发生高并发情况,有关序列的等待事件就会产生;如果出现有关序列等待事件, 建议初次可以由50调整为500至1000中的一个数字。
时间: 2024-10-05 09:24:09