DB

dc_sequences

Lawmin 2011. 10. 26. 13:47

RAC 환경에서 sequence 관련 장애가 있어 분석중에 찾은 내용 (don't forget!)

sequence cache의 크기를 늘리고, ORDER 보다 NOORDER 로 하는 것이 경합을 줄일 수 있다.
(NOCACHE 금지)

Generally, sequences can be cached with cache values as high as 200 in RAC. This
 is much higher than for a regular  Oracle instance. If there is insufficient caching,  contention can result and will show up as an increase in service times. If there are  performance problems due to sequences, the row cache locks statistics in the v$system_event view should be examined to determine whether the problem is due to  the use of Oracle sequences. This is discussed in the following points: n A problem with sequences is indicated in a v$system_event as an extended  average wait time for row cache locks in the range of a few hundred milliseconds. The proportion of time waiting for  row cache locks to the total time waiting for  non-idle events will be relatively high. n In the v$rowcache view, for the dc_sequences parameter, the ratio of dlm_conflicts to  dlm_requests will be high. If this ratio exceeds 10 to 15% and the  row cache lock wait time is a significant portion  of the total wait time, it is likely that the  service time deterioration is due to insufficiently cached sequences.
 

If the application has to create objects frequently, performance degradation to the  RAC environment will occur. This is due to the fact that object creation requires  inter-instance coordination. A large ratio of dlm_conflicts to dlm_requests on the  dc_object_ids row cache in v$rowcache, the same SELECT as was used for sequences  will work here as well, along with excessive wait times for the row cache lock event in  v$system_event, is indicative that multiple instances in the cluster are issuing excessive amounts of concurrent DDL statements.  http://media.techtarget.com/searchOracle/downloads/AUG-grid_excerpt_1.pdf