conceptos básicos tuning oracle
TRANSCRIPT
-
8/13/2019 Conceptos bsicos tuning Oracle
1/5
-
8/13/2019 Conceptos bsicos tuning Oracle
2/5
- 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 deBACKGROUND_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 Sistemas UNIX Sistema Windows
PMON Pmon_xxxx.trc sidPMON.trc
SMON Smon_xxxx.trc sidSMON.trc
DBW0 Dbw0_xxxx.trc sidDBW0.trc
LGWR Lgwr_xxxx.trc sidLGWR.trc
CPT Cpt_xxxx.trc sidCPT.trcARC0 Arc_xxxx.trc sidARC0.trc
- User trace filesLos ficheros user trace files se encuentran tambin en el directorio especificado en el
init.ora mediante el parmetro BACKGROUND_DUMP_DEST. Este fichero tambinincorpora en nombre de la instancia en los sistemas UNIX
Ejemplo:
Siendo alumnos el nombre de la instancia de nuestra base de datosora_alumnos_4327.trc (sistemas UNIX) ora04327.trc (Windows 2000) , para identificara qu usuario corresponde este trace file debemos de recurrir a dos vistas: V$PROCESSy v$SESSION.
Con la siguiente consulta podramos obtener el usuario cuyo proceso corresponde al4327 :
SQL > SELECT s.username,p.spid FROM v$session s, v$process pWHERE s.paddr = p.addr AND p.background is null;
USERNAME SPID----- ----USER1 4282USER2 5436USER3 4327USER4 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 hayaun error entonces deber realizar lo siguiente:
-
8/13/2019 Conceptos bsicos tuning Oracle
3/5
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 paraSQL_TRACEes FALSE.
User Level Self-Tracing Un usuario puede activar o desactivar en su propia sesin sutrace file utilizando los siguientes comandos de SQL :
SQL > ALTER SESSION SET SQL_TRACE=TRUESQL > ALTER SESSION SET SQL_TRACE=FALSE
User Level DBA Tracing Tambin podemos iniciar el user trace file mediante PL/SQLhaciendo una llamada al paquete DBMS_SYSTEM. Este paquete de PL/SQL contieneun procedimiento que nos permite activar el user trace file de algn usuariosimplemente 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$sessionWHERE username = DAVID';USERNAME SID SERIAL----- -- ----DAVID 10 2642
Activamos el trace file para la sesin de DAVID usando el paquete DBMS_SYSTEMPL/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 parmetroUSER_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 puedeinterpretar 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 elINIT.oraParmetro especificado Tamao mximo para User Trace
MAX_DUMP_FILE_SIZE=10000 10000 OS bloques
MAX_DUMP_FILE_SIZE=500K 500000 bytes
-
8/13/2019 Conceptos bsicos tuning Oracle
4/5
MAX_DUMP_FILE_SIZE=10M 10 megabytesMAX_DUMP_FILE_SIZE=unlimited No limits on file size
Performance Tuning ViewsHay 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 queutilizamos con nombres en plural. Un ejemplo para esto es V$datafile vsDBA_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 dinmicasconocidas colectivamente como X$ tablas. Estas tablas existen en memoria connombres 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 memoriaV$STATNAME Estadsticas del V$SESSTATV$SYSSTAT Estadsticas del uso de cpu para todas las sesionesactivasV$SESSTAT Estadsticas de las sesiones activasV$SESSION Sesiones activas.V$WAITSTAT Refleja la contencin en trminos del nmero deesperas 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 bloquesDBA_INDEXES ndices, lneas e informacin de bloquesDBA_DATA_FILES Ubicacin de los datafiles, nombre e informacindel tamao.DBA_SEGMENTS Informacin sobre el espacio consumido en lossegmentos de base de datos
Ejemplo de consultas (query) para este tipo de vistasV$:
SQL > Select s.username,n.name,t.value
from v$session, v$statname n,v$sesstat twhere s.sid=t.sid
-
8/13/2019 Conceptos bsicos tuning Oracle
5/5
and t.statistic#=n.statistic#and s.username ='DAVID';
DBA VIEW:
SQL > Select table_name, chain_cntfrom dba_tableswhere owner = DAVID'and chain_cnt !=0;