Está en la página 1de 2

EJERCICIO 

DE RENDIMIENTO DE UN ÍNDICE BASADO EN B+ 
Calcula el número de accesos a disco para recuperar un registro en un árbol B+ teniendo en 
cuenta los siguientes datos: 

Tamaño de página ‐ 2K 
Cabecera de página ‐ 20 bytes 
Número de registros ‐ 1.000.000 
Tamaño registro ‐ 100 bytes 
Clave ‐ 10 bytes 
Apuntadores ‐ 4 bytes 
Páginas ocupadas al 70% 

Opción 1. Suponemos que en el conjunto secuencia están almacenados los registros completos 
(esto no es el caso real). 
Calculamos el factor de bloque 
Fb = (2048 ‐ 20 ‐ 2*4)/100 = 20,2   Fb=20 registros/página 

Calculamos  el orden del índice 
m*4 + (m‐1)*10 =2048 ‐ 20   m=145,57    m=145 

Si la ocupación está al 70% 
Fb = 0,7*20 = 14 registros/página 
m = 0,7*145 = 101 

Número de páginas del conjunto secuencia = 1.000.000 / 14 =71.429 páginas 

Nivel  Descendientes  Páginas 


1  101  1 
2  101*101 =10.201  101 
3  101*101*101 = 1.030.301  101*101 
 

Necesitamos 3 niveles del conjunto índice para direccionar las 71.429 páginas del conjunto 
secuencia, pues con 2 niveles solo tendríamos posibilidad de direccionar 10.201 páginas. 

Así pues, necesitaríamos hacer 4 accesos = 3 al conjunto índice + 1 al conjunto secuencia. Si la 
raíz o el siguiente nivel está en memoria disminuye el número de accesos. 

De hecho con 3 niveles y la ocupación del 70% podríamos acceder a 14.424.214 registros. 

Si lo hacemos de manera general, sin considerar la ocupación del 70% del índice: 

  Árbol cargado al máximo  Árbol cargado al mínimo 
Nivel  Descendientes  Páginas  Descendientes  Páginas 
1  145  1  2  1 
2  145*145 = 21.025  145  2*73 = 146  2 
3  145*145*145 = 3.048.625  145*145  2*73*73 = 10.658  2*73 
      2*73*73*73 = 778.034  2*73*73 
 

Vemos que la altura del conjunto índice estaría entre 3 y 4 y, por tanto: 
Altura del árbol B+ estaría entre 4 (árbol lleno) o 5 (árbol al mínimo). 
Por tanto, deberíamos hacer entre 4 o 5 accesos para recuperar un registro si no hay ninguna 
página de índice en memoria. 

Opción 2. Suponemos que en el conjunto secuencia están almacenadas las parejas (claves, RID) 
(situación real) 

En este caso el registro completo está en el fichero de datos y en el conjunto secuencia 
tenemos parejas de claves e identificador de tupla, que ocupan 10 (clave)+4(RID) 

Fb = (2048 ‐ 20 ‐ 2*4) / 14 = 144,28      Fb=144 parejas/página 

Si la ocupación está al 70%: 
Fb = 0,7 * 144 = 100 parejas/página 

Número de páginas necesarias en el conjunto secuencia = 1.000.000 / 100 = 10.000 páginas.  

Vemos que necesitamos muchas menos páginas del conjunto secuencia (antes eran 71.429). El 
índice B+ será mucho más pequeño que antes. 

Además, si el árbol está al 70%, nos basta con 2 niveles del conjunto índice (direcciona hasta 
10.201 páginas). Entonces serían: 
 2 niveles del conjunto índice + 1 del conjunto secuencia + 1 página de datos y el  índice 
podría estar completo en memoria (102 páginas) o una gran parte, por lo que podrían ser solo 
dos accesos. 

Si el árbol estuviese al mínimo nos bastaría con 3 niveles del conjunto índice (direcciona hasta 
10.658 páginas). Entonces serían: 
3  niveles del conjunto índice + 1 del conjunto secuencia + 1 de datos 
Teniendo en cuenta que los dos primeros niveles del índice estarán en memoria seguro porque 
solo son 3 páginas, se reduciría a 3 accesos en total o a 2, si el tercer nivel también está en 
memoria. 

También podría gustarte