Guia del Programador de PostgreSQL | ||
---|---|---|
Anterior | Optimizaci�n Gen�tica de Consulta en Sistemas de Base de Datos | Siguiente |
Para largas consultas de tipo uni�n el gasto de tiempo de computaci�n para un optimizar gen�tica de la consulta parece ser una simple fracci�n del tiempo que necesita Postgres para la liberaci�n de memoria mediante la rutina MemoryContextFree, del archivo backend/utils/mmgr/mcxt.c. Depurando se mostr� que se atascaba en un bucle de la rutina OrderedElemPop, archivo backend/utils/mmgr/oset.c. Los mismos problemas aparecieron con consultas largas cuando se usa el algoritmo normal de optimizaci�n de Postgres.
En el archivo backend/optimizer/geqo/geqo_params.c, rutinas gimme_pool_size y gimme_number_generations, ha de encontrarse un compromiso entre las configuraciones de par�metros para satisfacer dos demandas que compiten:
Optimizaci�n del plan de consulta
Tiempo de computaci�n
En el archivo backend/optimizer/geqo/geqo_eval.c, rutina geqo_joinrel_size, el valor para el desbordamiento MAXINT esta definido por el valor entero de Postgres, rel->size como su logaritmo. Una modificaci�n de Rel en backend/nodes/relation.h tendr� seguramente impacto en la implementaci�n global de Postgres.
La falta de memoria puede ocurrir cuando hay m�s de 10 relaciones involucradas en la consulta. El archivo backend/optimizer/geqo/geqo_eval.c, rutina gimme_tree es llamado recursivamente. Puede ser que olvidase algo para ser liberado correctamente, pero no se que es. Por supuesto la estructura de datos rel de la uni�n continua creciendo y creciendo; muchas relaciones est�n empaquetadas dentro de ella. Las sugerencias son bienvenidas :-(
Informaci�n de referencia para algoritmos GEQ.
The Hitch-Hiker's Guide to Evolutionary Computation, J�rg Heitk�tter y David Beasley, Recurso de InterNet, The Design and Implementation of the Postgres Query Optimizer, Z. Fong, University of California, Berkeley Computer Science Department, Fundamentals of Database Systems, R. Elmasri y S. Navathe, The Benjamin/Cummings Pub., Inc..
FAQ en comp.ai.genetic esta disponible en Encore.
Archivo planner/Report.ps en la documentaci�n de postgres en la distribuci�n.