jueves, 5 de enero de 2012

Revisando los advisors de Oracle

Los advisors (consejeros?) de Oracle (desde la versión 10g) son una excelente manera de revisar el desempeño de una instancia y afinar tu base de datos Oracle, y puedes ver esta información de una manera fácil e intuitiva con el Enterprise Manager, pero algunas veces no tienes el Enterprise Manager corriendo o quizás quieres obtener esta información rápidamente con un script. Si este es el caso, puedes usar estas sentencias SQL para revisar la información de los advisors:

SQL> set linesize 150
SQL> column pga_target_mb format 999,999,990
SQL> column estd_extra_MB format 999,999,990
SQL> column name format A30
SQL> column value format A30

SQL> select pga_target_for_estimate/1048576 pga_target_mb, pga_target_factor factor,
estd_extra_bytes_rw/1048576 estd_extra_MB, estd_pga_cache_hit_percentage pga_hit,
estd_overalloc_count over_alloc from v$pga_target_advice
where pga_target_factor between .75 and 3 order by pga_target_factor;

PGA_TARGET_MB FACTOR ESTD_EXTRA_MB PGA_HIT OVER_ALLOC
------------- ---------- ------------- ---------- ----------
120 .75 490,015 44 901
160 1 275,813 58 593
192 1.2 254,315 60 565
224 1.4 180,064 68 130
256 1.6 154,973 71 130
288 1.8 154,460 71 68
320 2 153,986 71 46
480 3 151,257 72 0

8 rows selected.

SQL> SELECT SGA_SIZE, SGA_SIZE_FACTOR, ESTD_DB_TIME, ESTD_DB_TIME_FACTOR, ESTD_PHYSICAL_READS
from v$sga_target_advice where sga_size_factor between .75 and 3 order by SGA_SIZE_FACTOR;

SGA_SIZE SGA_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR ESTD_PHYSICAL_READS
---------- --------------- ------------ ------------------- -------------------
192 .75 698484 1.0397 297575225
256 1 671813 1 287818188
320 1.25 660325 .9829 283644824
384 1.5 637752 .9493 275384442
448 1.75 637752 .9493 275384442
512 2 637752 .9493 275384442

6 rows selected.

SQL> select NAME, VALUE from v$parameter
where NAME in ('shared_pool_size','large_pool_size','java_pool_size');

NAME VALUE
------------------------------ ------------------------------
shared_pool_size 0
large_pool_size 0
java_pool_size 0

SQL> select pool, name, bytes FROM V$SGASTAT where name = 'free memory';

POOL NAME BYTES
------------ ------------------------------ ----------
shared pool free memory 15515352
large pool free memory 3118304
java pool free memory 4194304

Pero ten cuidado! Los advisors de Oracle no están incluídos gratis y tienes que tener una licencia de Database Diagnostic Pack para usar esta información, y aún si lanzas sólo un select en estas vistas queda registrado por siempre y podrías ser responsable por usar un producto sin licencia. Y como una nota relacionada, si crees que puedes auditar el uso de productos en tu base de datos Oracle para mantener el cumplimiento de licencias de manera fácil y segura, piénsalo dos veces.

Más información:
Oracle licensing compliance is important
Oracle license audit

No hay comentarios.:

Publicar un comentario