Curso-iti-2007.pdf

This preview shows page 121 - 124 out of 160 pages.

CREATE TABLE... AS SELECT ... ORDER BY” , DROP TABLE”, “ALTER TABLE” ... “RENAME” o crear un cluster de tabla con “ CLUSTER [[índice ON] tabla]” que reordena físicamente las filas de la tabla según el orden del índice (bloqueo exclusivo en lectura y escritura) y el sistema recuerda la forma de agrupar la tabla 19.1.1 Tipos de índices El definir índices acelerará el rendimiento de las búsquedas siempre que la consulta tenga condiciones asociadas a los índices. Existen varios tipos de índice: árbol-B (BTREE) : valor por defecto, admiten varios predicados (>, <, =, LIKE, etc), multicolumna y unicidad. árbol-R (RTREE) : indicado para datos espaciales. Hash : sólo admite “=”, mal rendimiento
Image of page 121
Administración PostgreSQL 116 GiST : índice btree que puede ser extendido mediante la definición de nuevos predicados de consulta, también es multicolumna. // un btree CREATE INDEX mitabla_idx ON tabla (edad); // un HASH CREATE INDEX mitabla_idx ON tabla USING HASH (edad); 19.2 Ejecución de consultas En la ejecución de consultas participan tres elementos: Analizador : Análisis sintáctico y semántico Generación del árbol de análisis Planificador : Generación de planes de ejecución Plan de operadores: rastreos secuenciales, rastreos indexados,métodos de concatenación de tablas y ordenaciones Optimizador : Búsqueda del plan más económico Estimación del coste de cada operador Se puede influir en los costes asignados a cada operador Mediante EXPLAIN podemos ver el plan de ejecución de una consulta, y ver si se puede rediseñar de un modo mejor, al ejecutar explain sobre una consulta, nos permitirá: ver el plan de ejecución de consulta ver si se están usando índices usa estadísticas para generar plan óptimo ejecutando comandos “SET enable_* TO off” nos permite averiguar que haría en otro caso EXPLAIN ANALYZE muestra costo real de ejecución Veamos los distintos tipos de rastreo que puede usar PostgreSQL: 19.2.1 Rastreo secuencial (SEQ SCAN): Revisa la tabla de principio a fin, Evalúa la condición de la consulta para decidir si incorporar la fila al resultado. Se pasa por encima de las filas muertas y rl coste inicial es siempre O (recuperación inmediata de la primera fila)
Image of page 122
Afinamiento: Optimización de consultas Curso PostgreSQL – José Alarcón 117 19.2.2 Rastreo indexado (INDEX SCAN): Utiliza un índice de la tabla implicada, no tiene que revisar todas las filas de la tabla, Pero algunos bloques (páginas) pueden ir y venir varias veces, si la tabla está muy desordenada según el índice (no se ha hecho un CLUSTER recientemente), el resultado es ordenado según el orden del índice. Sólo se utiliza en índices árbol-B, árbol-R y GiST. El planificador/optimizador utiliza este rastreo cuando puede reducir el número de filas a revisar o la necesidad de ordenar el resultado. 19.2.3 Ordenación (SORT): La ordenación es de dos tipos según donde se haga: 1. en memoria principal: si cabe en la memoria de ordenación (tamaño determinado por el parámetro work_mem) 2. en disco: se particiona en varias ordenaciones y luego se fusionan los resultados parciales
Image of page 123
Image of page 124

You've reached the end of your free preview.

Want to read all 160 pages?

  • Fall '19
  • Test, PostgreSQL, Sistema de Gestión de Bases de Datos, macOS, Copia de seguridad, Base de datos relacional

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

Stuck? We have tutors online 24/7 who can help you get unstuck.
A+ icon
Ask Expert Tutors You can ask You can ask You can ask (will expire )
Answers in as fast as 15 minutes