Oracle Performance III - Estadísticas e Índices
Oracle Performance III - Estadísticas e Índices
Oracle Performance III - Estadísticas e Índices
Estadísticas e Índices
¡BIENVENIDOS!
Wikipedia
Búsqueda con y sin índices
No index B-Tree
1 <=12 1
3 3
100 5
24 11
5 12
98 24-77 24
233 34
77 43
12 67
87 77
300 87-100 87
43 98
120 89
89 99
11 100
122 120-300 120
67 122
34 233
250 250
99 300
Tipos de índices - Bitmap
Casi siempre vamos a tener índices B-tree, de
hecho, cuando creamos índices, es el tipo de
índice que se usará por defecto, pero es bueno Id Gen HM
1H 1 0
saber que existen otros tipos de indices, por 2M 0 1
3M 0 1
ejemplo los Bitmaps (Mapa de bits), que crean
4M 0 1
un mapa de bits con los valores y los rowid. 5H 1 0
6M 0 1
7H 1 0
Estos índices pueden mejorar el rendimiento 8M 0 1
en algunos campos con un número bajo de 9H 1 0
10H 1 0
valores posibles (Género, región, etc) pero no
son recomendables para otros con gran
número de valores posibles (apellido)
Tipos de índices
Veremos en una práctica como crear índices de una manera sencialla desde
SQLDeveloper.
¿Qué son las estadísticas?
Primero de todo explicaremos qué es el CBO (Cost-Based Optimizer) u
optimizador basada en costes.
- DBA_TABLES
- DBA_TAB_STATISTICS
- DBA_TAB_COLUMNS
- DBA_TAB_COL_STATISTICS
- DBA_PART_COL_STATISTICS
- DBA_INDEXES
- DBA_IND_STATISTICS
Recopilación de estadísticas
(Paquete DBMS_STATS)
El paquete DBMS_STATS nos permite realizar diferentes operaciones con las
estadísticas, vamos a realizar varias operaciones de recolección de
estadísticas usando los diferentes modos.
Hands-on labs
https://www.oracle.com/virtualization/technologies/vm/downloads/hol-orac
levm-downloads.html
Como hemos visto, la fase de parseo de una consulta puede ser de las más
pesadas, incluso más que la ejecución en si, por ello, para permitir al sistema la
re-ejecución de consultas similares es altamente recomendable el uso de Bind
Variables para que estas consultas no tengan que ser pareadas muchas veces
y sean tratadas como consultas similares, resumiendo, lo que se pretende
evitar es un “hard parse” y realizar un “soft parse”, mucho mas óptimo.
Uso de Bind Variables