2. Índice
1. Generar procesos y scripts para saturar sesiones de una base de datos
• Creación de Usuarios
• Creación del proceso que abrirá sesiones por usuario
2. Diagnosticar y evaluar el rendimiento de nuestra base de datos.
3. Para la realización de la práctica se ha decidido
desarrollar solo a base de ejemplos,
los cuales ayudarán a entender de una mejor manera
el tema planteado.
4. Generar procesos y scripts para saturar sesiones
de una base de datos
Creación de usuarios
Crear 3 usuarios Scott, Juan Perez y Luis Rojas.
Privilegios a los usuarios creados.
5. Generar procesos y scripts para saturar sesiones
de una base de datos
Creación del proceso que abrirá las sesiones por usuario
Por cada usuario vamos a crear un archivo .bat con las siguientes líneas:
sqlplus.exe Abre varias consolas SQL.
@script.sql Permite que la sesión se mantenga abierta.
6. Generar procesos y scripts para saturar sesiones
de una base de datos
Creación del proceso que abrirá las sesiones por usuario
En un botón creado en visual basic vamos a ingresar el siguiente código:
Al correr el código estamos haciendo que cada archivo .bat se ejecute 60
veces por cada usuario creado.
7. Generar procesos y scripts para saturar sesiones
de una base de datos
Creación del proceso que abrirá las sesiones por usuario
Oracle 10g XE tiene un número máximo de 170 sesiones de usuario, por lo que
después de completarse este máximo de sesiones obtendremos un mensaje
como este:
8. Generar procesos y scripts para saturar sesiones
de una base de datos
Creación del proceso que abrirá las sesiones por usuario
Ejecutar los siguientes script para poder ver los resultados sobre el inicio de
sesiones.
9. Diagnosticar y evaluar el rendimiento de nuestra
base de datos.
A continuación vamos a detallar los scripts utilizados para diagnosticar y
evaluar el rendimiento que presenta nuestra base de datos.
• Para conocer el máximo de sesiones
• Para verificar y detallar el numero
10. Diagnosticar y evaluar el rendimiento de nuestra
base de datos.
• Calcula la memoria utilizada por cada sesión
SELECT to_char(ssn.sid, '9999') || ' - ' || nvl(ssn.username, nvl(bgp.name, 'background')) ||
nvl(lower(ssn.machine), ins.host_name) "SESSION",
to_char(prc.spid, '999999999') "PID/THREAD",
to_char((se1.value/1024)/1024, '999G999G990D00') || ' MB' " CURRENT SIZE",
to_char((se2.value/1024)/1024, '999G999G990D00') || ' MB' " MAXIMUM SIZE"
FROM v$sesstat se1, v$sesstat se2, v$session ssn, v$bgprocess bgp, v$process prc,
v$instance ins, v$statname stat1, v$statname stat2
WHERE se1.statistic# = stat1.statistic# and stat1.name = 'session pga memory'
AND se2.statistic# = stat2.statistic# and stat2.name = 'session pga memory max'
AND se1.sid = ssn.sid
AND se2.sid = ssn.sid
AND ssn.paddr = bgp.paddr (+)
AND ssn.paddr = prc.addr (+);
11. Diagnosticar y evaluar el rendimiento de nuestra
base de datos.
• Muestra el CPU utilizado por las secciones activas
SELECT s.username, t.sid, s.serial#, SUM(VALUE/100) as "cpu usage (seconds)"
FROM v$session s, v$sesstat t, v$statname n
WHERE
t.STATISTIC# = n.STATISTIC#
AND
NAME like '%CPU used by this session%'
AND
t.SID = s.SID
AND
s.status='ACTIVE'
AND
s.username is not null
GROUP BY username,t.sid,s.serial#
12. Diagnosticar y evaluar el rendimiento de nuestra
base de datos.
• Muestra la historia de como a sido el estatus de la base de datos
• Verifica el estatus de las sesiones de la base y la fecha en la que se
encontró activa
13. Conclusiones
•Luego de realizar esta tarea se puede concluir que las
sesiones de usuario son parámetros que se pueden setear al
momento de instalar una base de datos o crear una
instancia de la misma.
•Estos parámetros se deben setear de acuerdo a las
necesidades o al uso que se le puede dar a la base de
datos.