DE CO SULTAS
TABLA DE CONTENIDO
TABLA DE CONTENIDO _________________________________________________ INTRODUCCIN ________________________________________________________ PREPARACIN DEL AMBIENTE DE TRABAJO______________________________ GENERALIDADES_______________________________________________________ CONSULTAS A SER UTILIZADAS EN ALGUNAS PRCTICAS ________________ PRCTICA 1. NDICE DE SELECTIVIDAD __________________________________ PRCTICA 2. COMPARACIN ENTRE IN OR UNION UNION ALL_________ PRCTICA 3. CONSULTAS PARTICULARES. _______________________________ PRCTICA 4. CLCULO EMPRICO DEL UMBRAL __________________________ 1 2 2 3 5 6 7 8 9
INTRODUCCIN
Se presenta un modelo de bases de datos de una tienda de venta de productos. Seguidamente se muestra las generalidades de dicha base de datos.
Objeto Categora Cliente Factura Inventario Parte Rengln Sucursal Vendedor Cantidad de registros 34 4.267 115.328 3 x 35.186 = 105.558 35.186 236.780 3 56
GENERALIDADES
Por defecto, PSQL no indexa aquellos campos que son claves forneas. Esto implica que cualquier consulta que involucre un campo forneo se realizar de forma secuencial. Por este motivo se debe explcitamente los ndices que involucran claves forneas. Para ver los ndices que existen el la base de datos utilcese el siguiente comando: SELECT tablename, indexname, indexdef FROM pg_indexes WHERE tablename NOT LIKE 'pg%' ORDER by 1,2
Tabla categoria cliente factura factura factura factura inventario inventario inventario parte parte renglon renglon renglon sucursal vendedor ndice CREATE UNIQUE INDEX categoria_pkey ON categoria USI G btree (categoria_id) CREATE UNIQUE INDEX cliente_pkey ON cliente (cliente_id) CREATE UNIQUE INDEX factura_pkey ON factura (factura_id) CREATE INDEX idx_factura_by_cliente_id ON factura (cliente_id) CREATE INDEX idx_factura_by_sucursal_id ON factura (sucursal_id) CREATE INDEX idx_factura_by_vendedor_id ON factura (vendedor_id) CREATE INDEX idx_inventario_by_parte_id ON inventario (parte_id) CREATE INDEX idx_inventario_by_sucursal_id ON inventario (sucursal_id) CREATE UNIQUE INDEX inventario_pkey ON inventario (sucursal_id, parte_id) CREATE INDEX idx_parte_by_categoria_id ON parte (categoria_id) CREATE UNIQUE INDEX parte_pkey ON parte (parte_id) CREATE INDEX idx_renglon_by_factura_id ON renglon (factura_id) CREATE INDEX idx_renglon_by_parte_id ON renglon (parte_id) CREATE UNIQUE INDEX renglon_pkey ON renglon (renglon_id) CREATE UNIQUE INDEX sucursal_pkey ON sucursal (sucursal_id) CREATE UNIQUE INDEX vendedor_pkey ON vendedor (vendedor_id)
Elementos a considerar: Las claves primarias son definidas por medio de la clusula CREATE UNIQUE INDEX. Los ndices secundarios (en este caso los pertenecientes a claves forneas) son construidos por medio de la clusula CREATE INDEX. Por defecto PSQL utiliza la clusula USING BTREE para la creacin de los ndices cuando esta clusula no se utiliza explcitamente. 3
Los ndices secundarios (slo para efectos de esta prctica) tienen el formato idx_TTTTT_by_CCCCC. En este caso TTTTT y CCCCC indican respectivamente la tabla que se est indexando y el campo por medio del cual sta se indexa.
Valor 41.000 43.000 45.000 47.000 49.000 51.000 53.000 55.000 57.000
ndice selectividad
Tiempo
Tipo acceso
Si se equivoca o no anota un paso intermedio, puede recomenzar ejecutando las siguientes consultas.