Costos consulta base de datos
El procesamiento de consulta tiene por objetivo el identificador una forma conveniente (rápida, barata) de ejecutar una consulta, por lo general ingresada como un comando SQL, sobre el contenido de una base de datos. Para esto, el procesador de consulta debe convertir el comando SQL en una secuencia de operaciones de álgebra relacional, las que seorganizan entre sí mediante un esquema jerárquico (llamado plan o árbol de acceso). A continuación, se van probando diversas modificaciones en dicha representación, como cambios de ubicación de las operaciones y formas diferentes de ejecutar la misma operación, buscando una manera más adecuada de hallar el mismo resultado (etapa que se denomina optimización de consultas). Tras haber probado muchasposibilidades de ejecución, idealmente el total de ellas, se escoge la que se ejecuta en el menor tiempo o bien la que consume menos recursos, y es la que se lleva a cabo para responder la consulta del usuario. Para poder apoyar la etapa de optimización, es necesario trabajar con funciones de costo sobre cada forma de ejecutar cada operación de álgebra relacional, de modo de contar con un mecanismode comparación entre las diversas formas de ejecución, e identificar correctamente la más conveniente.
Ejemplo de Generación de un Plan de Consulta Suponer la consulta: “Número de factura y razón social del cliente asociados a facturas emitidas a partir del 1° de Julio del 2003, y que contengan producto del tipo XXX”. Su representación en SQL es: select factura.#factura, cliente.razon_socialfrom cliente, factura, detalle, producto where producto.tipo = ‘XXX’ and producto.#producto = detalle.#producto and detalle.#factura = factura.#factura and factura.fecha >= ‘01/07/2003’ and factura.RUT_cliente = cliente.RUT; De esta consulta se identifican: • Selecciones: producto.tipo = ‘XXX’ factura.fecha >= ‘01/07/2003’ • Joins: producto.#producto = detalle.#producto detalle.#factura =factura.#factura factura.RUT_cliente = cliente.RUT; Al considerar un orden (jerárquico) de las operaciones anteriores se tiene el siguiente árbol canónico.
PROJECT factura.#factura, cliente.razon_social
SELECT producto.tipo = ‘XXX’ AND factura.fecha >= ‘01/07/2003’
JOIN Cliente
JOIN
JOIN
Factura
Producto
Detalle
Dos de los planes de acceso alternativos son los siguientes.PROJECT factura.#factura, cliente.razon_social
JOIN Cliente
SELECT fecha >= ‘01/07/2003’
JOIN Factura
JOIN
SELECT tipo = ‘XXX’
Detalle
Producto
PLAN DE ACCESO ALTERNATIVO 1
PROJECT factura.#factura, cliente.razon_social
JOIN
JOIN
JOIN
SELECT tipo = ‘XXX’
Detalle
SELECT fecha >= ‘01/07/2003’
Cliente
Producto
Factura
PLAN DE ACCESO ALTERNATIVO 2Funciones de Costo Para identificar el costo de cada plan de acceso, es preciso calcular el costo de cada nodo, para ir integrándolos desde las hojas hasta la raíz, y así obtener el costo total del plan. A continuación, se entregan las funciones de costo para las operaciones de selección y de join.
a) Operación SELECT Considerar los siguientes parámetros: • b: número de bloques del archivo.• r: número de registros del archivo. • fb: factor de bloqueo del archivo. • s: número de registros que cumplen la condición (cardinalidad de la selección). • x: número de niveles de un índice. • b1: número de bloques del último nivel del índice (o nivel de las hojas) Luego, las funciones de costos son: • Búsqueda lineal: accesando todos los bloques del archivo para recuperar todos los registrosque satisfacen la condición de selección, con un costo igual a b bloques. En el caso de una condición de igualdad sobre una clave única, en promedio, se recorre sólo la mitad del archivo, es decir el costo es (b/2) bloques. • Búsqueda binaria: tiene un costo aproximado de (log2b + (s/fb) - 1) bloques. Si la condición es de igualdad sobre una clave única, el costo se reduce a log2b...
Regístrate para leer el documento completo.