03_BBDD.GVD.Bitmap
-
Upload
leandro-arge -
Category
Documents
-
view
220 -
download
0
description
Transcript of 03_BBDD.GVD.Bitmap
![Page 1: 03_BBDD.GVD.Bitmap](https://reader036.fdocumento.com/reader036/viewer/2022083011/5695cff41a28ab9b02904add/html5/thumbnails/1.jpg)
Grandes volúmenes de
datos Índices Bitmap en Oracle
bases de datos
![Page 2: 03_BBDD.GVD.Bitmap](https://reader036.fdocumento.com/reader036/viewer/2022083011/5695cff41a28ab9b02904add/html5/thumbnails/2.jpg)
Índices Bitmap en Oracle
Para columnas con un pequeño conjunto de valores posibles y con pocas actualizaciones
Por ejemplo, queremos saber las provincias de la comunidad valenciana (3) en las que nuestro clientes (millones) han vivido BitMap
2
![Page 3: 03_BBDD.GVD.Bitmap](https://reader036.fdocumento.com/reader036/viewer/2022083011/5695cff41a28ab9b02904add/html5/thumbnails/3.jpg)
Índices Bitmap en Oracle
Son una matriz de 0 y 1 En una coordenada esta todos los rowids
de la tabla y en la otra todos los posibles valores del índice
1 = la fila tiene ese valor 0 = la fila no lo tiene
3
![Page 4: 03_BBDD.GVD.Bitmap](https://reader036.fdocumento.com/reader036/viewer/2022083011/5695cff41a28ab9b02904add/html5/thumbnails/4.jpg)
Índices Bitmap en Oracle
4
rowid Alicante Valencia Castellón
RWIDX 0 1 0
RWIDY 0 1 1
RWIDW 0 0 1
RWIDZ 1 0 0 RWIDU
1 1 0
clientes
El cliente cuyo registro tiene el ROWIDY
ha vivido en Valencia y Castellón
![Page 5: 03_BBDD.GVD.Bitmap](https://reader036.fdocumento.com/reader036/viewer/2022083011/5695cff41a28ab9b02904add/html5/thumbnails/5.jpg)
Índices Bitmap en Oracle
Ventajas
◦ Pueden suponer un ahorro de espacio frente a índices B-tree
◦ Condiciones AND/OR en la cláusula WHERE se resuelven de forma rápida realizando las correspondientes operaciones booleanas sobre el mapa de bits antes de convertir el mapa resultante a los identificadores de fila
5
![Page 6: 03_BBDD.GVD.Bitmap](https://reader036.fdocumento.com/reader036/viewer/2022083011/5695cff41a28ab9b02904add/html5/thumbnails/6.jpg)
Índices Bitmap en Oracle
Restricciones
◦ Sólo útiles para operaciones AND, OR, NOT, =
◦ No adecuados para operaciones de comparación <, >, <>
◦ No adecuados para aplicaciones con muchas transacciones concurrentes
6
![Page 7: 03_BBDD.GVD.Bitmap](https://reader036.fdocumento.com/reader036/viewer/2022083011/5695cff41a28ab9b02904add/html5/thumbnails/7.jpg)
Índices Bitmap en Oracle
Ejercicio
◦ Busca columnas en el esquema que sean adecuadas para índices bitmap
◦ Piensa en alguna columna a las ya existentes para la cual sería adecuado un índice bitmap
7
![Page 8: 03_BBDD.GVD.Bitmap](https://reader036.fdocumento.com/reader036/viewer/2022083011/5695cff41a28ab9b02904add/html5/thumbnails/8.jpg)
Índices Bitmap en Oracle
columnas candidatas del ejemplo
◦ pedidos.esta_pedi
◦ ejecucion.nume_even
8
![Page 9: 03_BBDD.GVD.Bitmap](https://reader036.fdocumento.com/reader036/viewer/2022083011/5695cff41a28ab9b02904add/html5/thumbnails/9.jpg)
Índices Bitmap en Oracle
Mapa de bits para la columna pedidos.esta_pedi
ROWID ‘C’ ‘R’
1xx 1 0
2xx 0 1
3Xx 1 0
4xx 0 1
5xx 1 0
6xx 0 1
9
where nume_pedi = ‘C’;
![Page 10: 03_BBDD.GVD.Bitmap](https://reader036.fdocumento.com/reader036/viewer/2022083011/5695cff41a28ab9b02904add/html5/thumbnails/10.jpg)
Índices Bitmap en Oracle
where nume_even in (2, 3, 4)
in
1
0
1
1
RowId 2 3 4
1xxx 1 0 1
2xxx 0 0 0
3xxx 0 1 0
4xxx 0 1 1
10
nume_even