Sie sind auf Seite 1von 5

Conceptos bsicos tuning Oracle

1. Top-Down
Oracle, a la hora de optimizar el rendimiento de nuestra base de datos recomienda un orden concreto de los aspectos a optimizar. Por ejemplo ponen el diseo de la base de datos por encima de la optimizacin del sistema o la instancia. Esta metodologa la denominan "Top-Down". Prioridad del rea a realizar tuning: * Tuning the Data Design * Tuning the Aplication Design * Tuning Memory Allocation * Tuning I/O and Physical Structure * Tuning Resource Contention * Tuning the underlying Platform(s)

2. Alert log
Los Alert logs son registros que contienen la informacin de mensajes de errores obtenidos por la variedad de actividades que se realizan en la base de datos. Estas actividades y registros estn almacenados cronolgicamente del mas antiguo al ms reciente. Este registro se encuentra en el directorio que hayamos fijado en nuestro init.ora bajo el parmetro BACKGROUND_DUMP_DEST. En una arquitectura OFA se recomienda que el directorio donde se encuentren estos archivos sea el siguiente: $ORACLE_BASE/adin/SID/bdump en sistemas UNIX. En sistemas tales como Windows 2000 segn este estndar podra encontrarse en %ORACLE_BASE%\admin\SID\bdump El nombre de este alert log ser alert_ seguido de la instancia de la base de datos. Una de las cosas que podemos hacer para tener un seguimiento del alert log es mantener en un archivo las ltimas 1000 lneas de este registro. Para hacer esto podemos echar mano del comando tail Ejemplo:
cd $ORACLE_BASE/admin/ALUMNOS/bdump tail 1000 alert_alumnos.log > alert_alumnos.log.ultimas mv alert_alumnos.log.ultimas alert_alumnos.log

3. Trace files
Oracle trace files son archivos de texto que contienen informacin de la sesin para el proceso que han creado. Trace files pueden ser generados por procesos background . Muchos de estos trace files contienen informacin sobre el tuning que se le debe hacer a una base de datos.

- Background Trace Files: Los trace files ( ficheros de traza ) generados por los procesos background pueden ser encontrados en el directorio especificado en el init.ora bajo el parmetro de BACKGROUND_DUMP_DEST . En sistemas que sigan el modelo OFA, $ORACLE_BASE/adin/SID/bdump en sistemas UNIX. En sistemas tales como Windows 2000 segn este estndar podra encontrarse en %ORACLE_BASE%\admin\SID\bdump Ejemplo de trace files para los procesos background: Nombre del proceso PMON SMON DBW0 LGWR CPT ARC0 Sistemas UNIX Pmon_xxxx.trc Smon_xxxx.trc Dbw0_xxxx.trc Lgwr_xxxx.trc Cpt_xxxx.trc Arc_xxxx.trc Sistema Windows sidPMON.trc sidSMON.trc sidDBW0.trc sidLGWR.trc sidCPT.trc sidARC0.trc

- User trace files Los ficheros user trace files se encuentran tambin en el directorio especificado en el init.ora mediante el parmetro BACKGROUND_DUMP_DEST. Este fichero tambin incorpora en nombre de la instancia en los sistemas UNIX Ejemplo: Siendo alumnos el nombre de la instancia de nuestra base de datos ora_alumnos_4327.trc (sistemas UNIX) ora04327.trc (Windows 2000) , para identificar a qu usuario corresponde este trace file debemos de recurrir a dos vistas: V$PROCESS y v$SESSION. Con la siguiente consulta podramos obtener el usuario cuyo proceso corresponde al 4327 :
SQL > SELECT s.username,p.spid FROM v$session s, v$process p WHERE s.paddr = p.addr AND p.background is null; USERNAME SPID ----- ---USER1 4282 USER2 5436 USER3 4327 USER4 4678

Activando las trazas de usuario: Cuando ocurre un error, el archivo de traza se genera automticamente, no obstante si el administrador de base de datos quiere que este archivo no solo se genere cuando haya un error entonces deber realizar lo siguiente:

Instance-Level Tracing: Si ponemos en init.ora el parmetro SQL_TRACE=TRUE, todos los procesos generarn sus archivos de traza. El parmetro por defecto para SQL_TRACE es FALSE. User Level Self-Tracing Un usuario puede activar o desactivar en su propia sesin su trace file utilizando los siguientes comandos de SQL :
SQL > ALTER SESSION SET SQL_TRACE=TRUE SQL > ALTER SESSION SET SQL_TRACE=FALSE

User Level DBA Tracing Tambin podemos iniciar el user trace file mediante PL/SQL haciendo una llamada al paquete DBMS_SYSTEM. Este paquete de PL/SQL contiene un procedimiento que nos permite activar el user trace file de algn usuario simplemente sabiendo el sid y el serial ( serial# ) Identificamos el sid y el serial# de un usuario llamado DAVID:
SQL> SELECT username, sid, serial# FROM v$session WHERE username = DAVID'; USERNAME SID SERIAL ----- -- ---DAVID 10 2642

Activamos el trace file para la sesin de DAVID usando el paquete DBMS_SYSTEM PL/SQL y los valores para el sid y el serial que hemos obtenido en el punto 1. Utilizamos el procedimiento set_sql_trace_in_session del paquete dbms_system
SQL > exec sys.dbms_system.set_sql_trace_in_session(10,2642,TRUE);

La sesin de DAVID generar un trace file que estar especificado en el parmetro USER_DUMP_DEST de nuestro init.ora . En caso de que queramos para el trace file para el usuario DAVID ejecutaremos lo siguiente:
SQL > exec sys.dbms_system.set_sql_trace_in_session(10,2642,FALSE);

4. Cmo interpretar User trace file


Una vez que estos trace file se han generado hay que aprender a interpretarlos. Se puede interpretar el contenido de un user_trace_file usando la utilidad TKPROF. Gestionando trace files: Podemos gestionar el tamao de estos archivos mediante una serie de parmetros en el INIT.ora Parmetro especificado Tamao mximo para User Trace
MAX_DUMP_FILE_SIZE=10000 10000 OS bloques MAX_DUMP_FILE_SIZE=500K 500000 bytes

MAX_DUMP_FILE_SIZE=10M 10 megabytes MAX_DUMP_FILE_SIZE=unlimited No limits on file size

Performance Tuning Views Hay dos tipos de vistas de ORACLE que nos dan informacin:

Las v$ dynamic performance views Las DBA Data dictionary views

Los nombres de las vistas v$ son generalmente singulares de las DBA views que utilizamos con nombres en plural. Un ejemplo para esto es V$datafile vs DBA_DATA_FILES. Muchas de las vistas estn disponibles cuando la base de datos est en estado nomount mount. Las DBA views slo estn disponibles cuando la base de datos est abierta (open) Hay aproximadamente unas 225 V$, estas vistas estn basadas en tablas dinmicas conocidas colectivamente como X$ tablas. Estas tablas existen en memoria con nombres encriptados como X$KSMPS. Ejemplo de v$dynamic performance views.
Nombre de la vista Descripcin de la vista ------------------ -------------------------V$SGASTAT Tamao de todas las estructuras de memoria V$STATNAME Estadsticas del V$SESSTAT V$SYSSTAT Estadsticas del uso de cpu para todas las sesiones activas V$SESSTAT Estadsticas de las sesiones activas V$SESSION Sesiones activas. V$WAITSTAT Refleja la contencin en trminos del nmero de esperas en cuatro tipos de bloques de rollback

Ejemplo de DBA Views


Nombre de la vista Descripcin de la vista : ------------------ ------------------------DBA_TABLES Tablas, lneas e informacin de bloques DBA_INDEXES ndices, lneas e informacin de bloques DBA_DATA_FILES Ubicacin de los datafiles, nombre e informacin del tamao. DBA_SEGMENTS Informacin sobre el espacio consumido en los segmentos de base de datos

Ejemplo de consultas (query) para este tipo de vistas V$:


SQL > Select s.username,n.name,t.value from v$session, v$statname n,v$sesstat t where s.sid=t.sid

and t.statistic#=n.statistic# and s.username ='DAVID';

DBA VIEW:
SQL > Select table_name, chain_cnt from dba_tables where owner = DAVID' and chain_cnt !=0;

Das könnte Ihnen auch gefallen