在高並發的數據庫系統中,序列的緩存也要相應的調大。現在看看數據庫自己的一個高並發序列的定義。
當我們向數據庫發送一個請求時,監聽接待,然后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中的一個數字。