Universidad Latinoamericana de Ciencia y Tecnología
Escuela de Ciencias de la Computación
Codigo del Curso: 16-1004
Curso: Administración de bases de datos relacionales II
Profesor: Luis Ruben Artavia
Integrantes:
Roy Cruz Polanco
Mario Solís Mercado
Oracle Statspack
Investigar y aplicar las funcionabilidades y beneficios que provee Oracle Statspack, para evaluar el rendimiento de las consultas SQL en distintos escenarios.
Oracle Statspack
Oracle Statspack
Un paquete para bases de datos Oracle, utilizado para gestionar el proceso de recopilación de estadísticas y datos de las tablas.
Aparece en la versión 8.1.6
Es una colección de scripts SQL, PL/SQL y SQL*Plus, que recopilan, almacenan y despliegan datos de rendimiento.
Se puede generar informes que proporcionan información sobre la salud, la instancia SQL que consume más recursos, wait events, y parámetros de inicialización.
Oracle Statspack
Oracle Statspack
SQL> connect system/manager as SYSDBA
SQL> @spcreateSe debe asignar al menos 100 MB para la creación inicial de los objetos de esquema PERFSTAT.
Oracle Statspack
SQL> @?/rdbms/admin/sprepsql
SQL> @?/rdbms/admin/spreport
SQL> @?/rdbms/admin/spcreate
SQL> @?/rdbms/admin/spdropPara ejecutar los procedimientos almacenados en windows se necesita poner @?/rdbms/admin/ antes del nombre de cada procedimiento.
Oracle Statspack
SQL> @spdusrComando utilizado para eliminar el perfil
Oracle Statspack
Execute STATPACK.SNAP;Son una recolección de datos en un instante de tiempo determinado
Obtienen las estadísticas y datos necesarios de las vistas “V$”.
Comando para ejecutar un snapshot
| Nivel | Descripción |
|---|---|
| 0 a 4 | Estadísticas de rendimiento generales sobre todas las áreas de memoria, bloqueos internos, áreas y sucesos. |
| 5 a 9 | Las mismas estadísticas de los niveles anteriores, más las instrucciones SQL que más recursos demandan. |
| 10 y posteriores | Las mismas estadísticas de los niveles inferiores, más las intrucciones SQL que más recurssos requieren y los datos de bloques internos padre/hijo. |
Oracle Statspack
SQL> EXECUTE STATSPACK.SNAP(i_snap_level=>6);comando para cambiar el nivel del snap
| Nombre del parámetro | Rango de valores | Valor Predetermindado | Descripción |
|---|---|---|---|
| i_snap_level | 0-10 | 5 | Nivel de snapshot |
| i_ucomment | Cualquier Texto | vacío | Comentario para el snapshot |
| i_executions_th | Entero >= 0 | 100 | Umbral para el número de ejecuciones acumuladas |
| i_disk_reads_th | Entero >= 0 | 1000 | Umbral para el número de lecturas acumuladas |
| i_parse_calls_th | Entero >= 0 | 1000 | Umbral para el número de análisis acumuladas. |
| i_buffer_gets_th | Entero >= 0 | 10000 | Umbral para el número de extracciones de buffer acumuladdas. |
| i_sharable_mem_th | Entero >= 0 | 100000 | Umbral para la cantidad de memoria compartida asignada. |
| i_version_count_th | Entero >= 0 | 20 | Umbral para el número de version de la instrucción SQL. |
| i_session_id | Entero >= 0 | 0 | ID de sesión, si desea recoger estadísticas a nivel de sesión. |
| i_modify_parameter | Boolean | False | Configurar a TRUE si se desea guardar los cambios para futuros snapshots. |
STATSPACK.MODIFY_STATSPACK_PARAMETER -
(i_snap_level => 5, i_buffer_gets_th => 100000);Oracle Statspack
Oracle Statspack
El statspack permite analizar el espacio que va a ser utilizado en disco para almacenar esta información. Así como eliminar estadisticas las cuales no van a ser necesarios para futuros reportes.
execute DBMS_UTILITY.ANALYZE_SCHEMA('PERFSTAT', 'COMPUTE');SQL> sptrunc.sql.comando para optener información schema y el espacio para almacenar en disco.
procedimiento para eliminar todo snaps antiguos
El paquete DBMS_JOB son metodos para correr automaticamente, de manera periodica distitos scripts, con los cuales pueden ser ejecutados cada cierto tiempo. Para ejecutar un snapshot se debe de correr el procedimiento auto.sql el cual nos mostrara el Job number para poder correr ejecutar los snapshots.
En el ejemplo anterior de puede ver como se configurar el Job para ser ejecutado acada hora.
Oracle Statspack
EXECUTE DBMS_JOB.INTERVAL(job_number,'SYSDATE+(1/24)');El @spreporte genera un conjunto de repotes relacionados a los snapshots que fueron seleccionados para generar el reporte, y despliega datos de utilización de la cache, de la utilización del share pool, la exploración de las tablas, cache buffer por area y actividad de bloques así como un informe de consultas sql.
SQL> @spreportSQL> @sprepsqlEl @sprepsql muestra las estadísticas, el texto completo de SQL, y (si se ha tomado un snapshot de nivel 6), información sobre cualquier plan de SQL asociado con esa sentencia.
Oracle Statspack
Oracle Statspack
Database DB Id Instance Inst Num Startup Time Release RAC
~~~~~~~~ ----------- ------------ -------- --------------- ----------- ---
1371108442 orcl 1 09-Ago-14 12:24 11.2.0.1.0 NO
Host Name Platform CPUs Cores Sockets Memory (G)
~~~~ ---------------- ---------------------- ----- ----- ------- ------------
W7-PC Microsoft Windows x86 2 2 1 1.8
Snapshot Snap Id Snap Time Sessions Curs/Sess Comment
~~~~~~~~ ---------- ------------------ -------- --------- ------------------
Begin Snap: 15 09-Ago-14 13:54:26 33 4.0
End Snap: 16 09-Ago-14 13:54:57 35 3.7
Elapsed: 0.52 (mins) Av Act Sess: 0.0
DB time: 0.02 (mins) DB CPU: 0.01 (mins)
Oracle Statspack
Cache Sizes Begin End
~~~~~~~~~~~ ---------- ----------
Buffer Cache: 320M Std Block Size: 8K
Shared Pool: 416M Log Buffer: 8,392K
Load Profile Per Second Per Transaction Per Exec Per Call
~~~~~~~~~~~~ ------------------ ----------------- ----------- -----------
DB time(s): 0.0 0.3 0.01 0.00
DB CPU(s): 0.0 0.2 0.00 0.00
Redo size: 34,114.2 211,508.0
Logical reads: 319.4 1,980.2
Block changes: 67.1 416.2
Physical reads: 0.0 0.0
Physical writes: 0.1 0.4
User calls: 8.9 55.0
Parses: 5.7 35.2
Hard parses: 0.0 0.0
W/A MB processed: 0.9 5.4
Logons: 0.1 0.6
Executes: 8.4 51.8
Rollbacks: 0.0 0.0
Transactions: 0.2Oracle Statspack
Instance Efficiency Indicators
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffer Nowait %: 100.00 Redo NoWait %: 100.00
Buffer Hit %: 100.00 Optimal W/A Exec %: 100.00
Library Hit %: 100.00 Soft Parse %: 100.00
Execute to Parse %: 32.05 Latch Hit %: 100.00
Parse CPU to Parse Elapsd %: % Non-Parse CPU: 97.22
Shared Pool Statistics Begin End
------ ------
Memory Usage %: 71.93 71.96
% SQL with executions>1: 62.77 62.84
% Memory for SQL w/exec>1: 64.91 65.02
Oracle Statspack
Instance Activity Stats DB/Inst: ORCL/orcl Snaps: 15-16
Statistic Total per Second per Trans
--------------------------------- ------------------ -------------- ------------
session pga memory max 5,117,032 165,065.6 1,023,406.4
session uga memory 4,295,641,400 138,569,077.4 ############
session uga memory max 3,370,368 108,721.6 674,073.6
shared hash latch upgrades - no w 171 5.5 34.2
SMON posted for undo segment shri 0 0.0 0.0
sorts (memory) 158 5.1 31.6
sorts (rows) 5,001 161.3 1,000.2
sql area evicted 0 0.0 0.0
sql area purged 0 0.0 0.0
SQL*Net roundtrips to/from client 260 8.4 52.0
switch current to new buffer 1 0.0 0.2
table fetch by rowid 31 1.0 6.2
table fetch continued row 0 0.0 0.0
table scan blocks gotten 2,647 85.4 529.4
table scan rows gotten 86,452 2,788.8 17,290.4
table scans (direct read) 0 0.0 0.0
table scans (long tables) 0 0.0 0.0
table scans (short tables) 28 0.9 5.6
TBS Extension: bytes extended 0 0.0 0.0
TBS Extension: files extended 0 0.0 0.0
TBS Extension: tasks created 0 0.0 0.0
TBS Extension: tasks executed 0 0.0 0.0
temp space allocated (bytes) 0 0.0 0.0
total cf enq hold time 0 0.0 0.0
total number of cf enq holders 0 0.0 0.0
total number of times SMON posted 0 0.0 0.0
transaction rollbacks 0 0.0 0.0
undo change vector size 386,884 12,480.1 77,376.8
-------------------------------------------------------------Oracle Statspack
DB Name DB Id Instance Inst Num Release RAC Host
------------ ----------- ------------ -------- ----------- --- ----------------
ORCL 1371108442 orcl 1 11.2.0.1.0 NO W7-PC
Start Id Start Time End Id End Time Duration(mins)
--------- ------------------- --------- ------------------- --------------
21 18-Ago-14 23:13:21 22 19-Ago-14 18:47:56 1,174.58
SQL Statistics
~~~~~~~~~~~~~~
-> CPU and Elapsed Time are in seconds (s) for Statement Total and in
milliseconds (ms) for Per Execute
% Snap
Statement Total Per Execute Total
--------------- --------------- ------
Buffer Gets: 1,558,549 62,342.0 25.97
Disk Reads: 83,630 3,345.2 44.55
Rows processed: 41,943,038 1,677,721.5
CPU Time(s/ms): 41 1,621.3
Elapsed Time(s/ms): 268 10,706.1
Sorts: 0 .0
Parse Calls: 25 1.0
Invalidations: 2
Version count: 1
Sharable Mem(K): 18
Executions: 25
SQL Text
~~~~~~~~
insert into test select * from test
El archivo spdrop.sql llama a scripts que borran las tablas, el paquete, los sinónimos públicos y el usuario PERFSTAT. Para poder ejecutar este procedimiento se necesitan tener permisos de SYSDBA.
Oracle Statspack
SQL> @spdropOracle Statspack