2009/8/26 Sebastian Machuca <serr...@gmail.com>: > > En el caso en particular al que me enfrento, he creado un indice usando un > árbol binario de la siguiente manera > > CREATE INDEX ani_8 ON trx_8 using BTREE (ani); > > Las consultas que he realizado son las siguientes: > > EXPLAIN ANALYZE SELECT distinct ani from trx_8;
[... un explain va aqui ...] > > EXPLAIN ANALYZE SELECT ani from trx_8 group by ani; [... otro explain iba aqui ...] > > Si tengo un indice asociado, y mas aun, se que el resultado son solo 2 > valores, el tiempo no debería ser muchísimo mas rápido??? > y por que supones que un indice te va a ayudar en estas consultas? lo que las consultas estas haciendo y es obvio al menos por el primer explain es leer toda la tabla y en base a eso verifica que los resultados no se repitan... lo unico en lo que el indice te ayuda es para que no necesites ordenar el resultado antes del nodo Unique (en el primer explain) y Group (en el segundo)... pero en su lugar estas leyendo los registros dos veces (la primera vez del indice y luego verificando la visibilidad en la tabla, ambas lecturas de disco). yo eliminaria el indice y subiria un poco work_mem (entre 3 a 4 MB) antes de esta consulta para saber si se puede realizar el sort en memoria -- Atentamente, Jaime Casanova Soporte y capacitación de PostgreSQL Asesoría y desarrollo de sistemas Guayaquil - Ecuador Cel. +59387171157 -- TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net