Oracle: Trucos para DBA II
OPTIMIZACIÓN
IDENTIFICA TABLESPACES Y PROPIETARIOS DE LOS MISMOS. SI TIENE DEMASIADOS EXTENT, EL TAMAÑO DE LOS EXTENT PUEDE NO SER OPTIMO
SELECT owner, DECODE (partition_name, NULL, segment_name, segment_name || ':' || partition_name) name, segment_type, tablespace_name, bytes, initial_extent, next_extent, PCT_INCREASE, extents, max_extents FROM dba_segments WHERE extents > 1 ORDER BY 9 DESC, 3;
MEMORIA SHARE_POOL LIBRE Y USADA
SELECT name,to_number(value) bytes FROM v$parameter WHERE name ='shared_pool_size' UNION ALL SELECT name,bytes FROM v$sgastat WHERE pool = 'shared pool' AND name = 'free memory';
AUDITORÍA
MOSTRAR DATOS DE AUDITORÍA DE LA BASE DE DATOS ORACLE (INICIO Y DESCONEXIÓN DE SESIONES)
SELECT username, action_name, priv_used, returncode FROM dba_audit_trail;
SESIONES / USUARIOS
OBTENER LOS USUARIOS DE UNA BASE DE DATOS
SELECT USERNAME FROM DBA_USERS;
CONTRASEÑAS POR DEFECTO DE ORACLE
SYS: CHANGE_ON_INSTALL
SYSTEM: MANAGER
SCOTT: TIGER
ADAMS: WOOD
JONES: STEEL
BLAKE: PAPER
FORD: CAR
KING: GOLD
OBTENER LOS ROLES EXISTENTES EN ORACLE DATABASE
SELECT * FROM DBA_ROLES;
ROLES Y PRIVILEGIOS POR ROLES
SELECT * FROM role_sys_privs;
INFORMACIÓN DE CONEXIÓN A LA BASE DE DATOS
SELECT SID, -- Identificador de sesión osuser, -- Usuario de sistema operativo username, -- Usuario de base de datos machine, -- Máquina desde la que se realiza la conexión program, -- Programa, que realiza la conexión logon_time, -- Hora de conexión Lockwait -- Identifica si hay bloqueo FROM v$session ORDER BY osuser;
VISTA QUE MUESTRA EL NÚMERO DE CONEXIONES ACTUALES A ORACLE AGRUPADO POR APLICACIÓN QUE REALIZA LA CONEXIÓN
SELECT program Aplicacion, COUNT(program) Numero_Sesiones FROM v$session GROUP BY program ORDER BY Numero_Sesiones DESC;
VISTA QUE MUESTRA LOS USUARIOS DE ORACLE CONECTADOS Y EL NÚMERO DE SESIONES POR USUARIO
SELECT username Usuario_Oracle, COUNT(username) Numero_Sesiones FROM v$session GROUP BY username ORDER BY Numero_Sesiones DESC;
CURSORES ABIERTOS POR USUARIO
SELECT b.sid, a.username, b.value Cursores_Abiertos FROM v$session a, v$sesstat b, v$statname c WHERE c.name IN ('opened cursors current') AND b.statistic# = c.statistic# AND a.sid = b.sid AND a.username IS NOT NULL AND b.value >0 ORDER BY 3;
OBTENER LOS PRIVILEGIOS OTORGADOS A UN ROL DE ORACLE
SELECT privilege FROM dba_sys_privs WHERE grantee = 'NOMBRE_ROL';
INFORMACIÓN SENTENCIAS SQL
ACIERTOS DE LA CACHÉ (NO DEBE SUPERAR EL 1 POR CIENTO)
SELECT SUM(pins) Ejecuciones, SUM(reloads) Fallos_cache, TRUNC(SUM(reloads)/SUM(pins)*100,2) Porcentaje_aciertos FROM v$librarycache WHERE namespace IN ('TABLE/PROCEDURE','SQL AREA','BODY','TRIGGER');
SENTENCIAS SQL COMPLETAS EJECUTADAS CON UN TEXTO DETERMINADO EN EL SQL
SELECT c.sid, d.piece, c.serial#, c.username, d.sql_text FROM v$session c, v$sqltext d WHERE c.sql_hash_value = d.hash_value AND UPPER(d.sql_text) LIKE '%WHERE CAMPO LIKE%' ORDER BY c.sid, d.piece999;
UNA SENTENCIA SQL CONCRETA (FILTRADO POR SID)
SELECT c.sid, d.piece, c.serial#, c.username, d.sql_text FROM v$session c, v$sqltext d WHERE c.sql_hash_value = d.hash_value AND sid = 105 ORDER BY c.sid, d.piece;
ÚLTIMAS CONSULTAS SQL EJECUTADAS EN ORACLE Y USUARIO QUE LAS EJECUTÓ
SELECT DISTINCT vs.sql_text, vs.sharable_mem, vs.persistent_mem, vs.runtime_mem, vs.sorts, vs.executions, vs.parse_calls, vs.module, vs.buffer_gets, vs.disk_reads, vs.version_count, vs.users_opening, vs.loads, to_char(to_date(vs.first_load_time, 'YYYY-MM-DD/HH24:MI:SS'),'MM/DD HH24:MI:SS') first_load_time, rawtohex(vs.address) address, vs.hash_value hash_value , rows_processed , vs.command_type, vs.parsing_user_id , OPTIMIZER_MODE , au.USERNAME parseuser FROM v$sqlarea vs , all_users au WHERE (parsing_user_id != 0) AND (au.user_id(+)=vs.parsing_user_id) AND (executions >= 1) ORDER BY buffer_gets/executions DESC;
COMPROBAR SI LA AUDITORÍA DE LA BASE DE DATOS ORACLE ESTÁ ACTIVADA
SELECT name, value FROM v$parameter WHERE name LIKE 'audit_trail';
LENGUAJE
UTILIZAR «,» PARA MILLARES Y «.» PARA DECIMALES PARA REPRESENTACIÓN NÚMERICA DENTRO DE UN BLOQUE PL/SQL
BEGIN Dbms_session.set_nls ('NLS_NUMERIC_CHARACTERS','",."'); END;
OTROS ENLACES DE INTERES
Comments are closed.