Thứ Năm, 13 tháng 9, 2018

Xử lý cảnh báo enq: SQ - contention

1. Mục đích: 

Xử lý cảnh báo enq: SQ - contention làm wait nhiều khi ứng dụng lớn cần truy cập vào sequence. Hiện tượng khi đọc AWR --> Top 5 Timed Foreground Events có event:


EventWaitsTime(s)Avg wait (ms)% DB timeWait Class
enq: SQ - contention1,299179,88113847767.56Configuration
db file sequential read2,180,71728,7841310.81User I/O
DB CPU20,4967.70
SQL*Net message from dblink13,679,74513,51515.08Network
gc buffer busy release157,2573,078201.16Cluster



2. Nguyên nhân: 

Nhiều sequence cần truy cập đang có giá trị default bằng 20

3. Cách xử lý:

Theo khuyến cáo của Oracle Doc ID 2156730.1 liên quan đến cải thiện hiệu năng việc sử dụng sequence trên RAC, với các sequence có giá trị default bằng 20 để tăng hiệu năng sử dụng sequence trên môi trường RAC thiết lập lại 1000


Em query trong database billing thấy có nhiều sequence để giá trị cache size default:

select distinct sequence_owner  from dba_sequences

where cache_size=20;


select 'alter sequence ' || sequence_owner || '.' || sequence_name || ' cache 1000;' from dba_sequences

where sequence_owner in ('USER')  and cache_size=20
order by 1;

Chạy script trên



ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master