IIC2440 / Syllabus-2024-1

20 stars 0 forks source link

Actividad 01 [No evaluada] Pregunta 2.2 #1

Open rvcruz opened 7 months ago

rvcruz commented 7 months ago

Hola! Cuando se decide indexar a "id" como B+Tree Clustered y a "edad" como B+Tree Unclustered, me surge la duda de que cuando se trabajen las consultas de igualdad y/o rango, ¿se consideran ambos arboles de forma independiente?. Dado a lo anterior, al calcular el costo, de la consulta "SELECT * FROM Personas WHERE edad >= 25"¿debería sumar el costo de ambas partes? Por ejemplo, (no se si es correcto) pienso que el costo podría ser:

(Considerando 10^6 tuplas y que en cada pagina contiene T tuplas)

Costo = B+Tree C. + B+Tree U. Costo = [h_c + (10^6/T)70%] + [(h_u + ((10^6)/P)70% - 1) + (10^6)*70%]

(Recuerdo que el profe dijo "todo dependerá como se haga el join") Saludos y espero puedan ayudarme

alanezz commented 7 months ago

Hola,

Cuando haces una consulta del estilo WHERE edad >= 25 vas a usar el árbol que aplica a esa consulta. Por lo mismo, vas a usar el árbol asociado a la edad. Así que el costo es bajar por el árbol, y escanear los resultados para recibir los punteros, y por cada puntero ir al disco. Eso calza con lo que pusiste en el costo de B+Tree U.

Saludos!