Veritabanında yaşanan performans problemi detaylı incelendiğinde Sql tarafında her şey normal gözükmesine rağmen Librarch Cache de Lock lar olduğu ve bunun ise veritabanında dar boğaza neden olduğu görüldü, sorun detaylı incelendiğinde 12c R1 verisyonunda defaultta TRUE olarak gelen ptimizer_adaptive_features=TRUE parametresinin bu duruma yol açtığı anlaşıldı. Bu sürümde çalışıyorsanız benim tavsiyem bu parametreyi FALSE yapmanız olacaktır. Bu parametreyi FALSE yaptığımda aşağıda ki çıktıda da göründüğü üzere recursive calls sayısı 35769 dan 20 ye , consistent gets sayısı 330467 den 3197 düşmüştür.
SQL> set autotrace traceonly;
SQL> SQL run
Execution Plan
----------------------------------------------------------
Statistics
----------------------------------------------------------
35769 recursive calls
18 db block gets
330467 consistent gets
22458 physical reads
704 redo size
970 bytes sent via SQL*Net to client
552 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
10722 sorts (memory)
0 sorts (disk)
12 rows processed
SQL> alter system set optimizer_adaptive_features=FALSE scope=both;
System altered.
SQL> alter system flush shared_pool;
Execution Plan
----------------------------------------------------------
Statistics
----------------------------------------------------------
20 recursive calls
9 db block gets
3197 consistent gets
2 physical reads
660 redo size
972 bytes sent via SQL*Net to client
552 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
2 sorts (memory)
0 sorts (disk)
12 rows processed
Bir yanıt yazın