2009/8/26 Sebastian Machuca <serr...@gmail.com>: > > No tengo expertiz en el tema, pero yo asumo que un indice ayuda, porque si > es un arbol binario y balanceado, los datos deben estar ordenados,
el indice esta ordenado > y buscar > los distintos, si son solo 2, debería desde mi punto de vista ser muy > rápido > "tu" sabes que son solo 2... postgres no, la unica forma que tiene de saber cuantos valores distintos hay es visitar todos los registros del indice y agregar al conjunto de resultados al menos el primero cada vez que encuentre un valor nuevo... el problema es que no solo puede agregarlo al conjunto de resultados sino que debido a las reglas del MVCC es posible que ese registro ya hubiera sido borrado asi que antes debe chequear en la tabla si realmente el regsitro aun es valido... lo que implica que vistaras todo el indice, y dependiendo de la distribucion en la tabla y la cantidad de tuplas muertas quiza tambien algunas paginas de la tabla... tengo la sospecha de que tanto work_mem te hace mas dano que bien... que pasa si ejecutas "set enable_indexscan to off;" antes de la consulta? de todos modos en 8.3 es mejor la forma "select ani from trx_8 group by ani;" -- Atentamente, Jaime Casanova Soporte y capacitación de PostgreSQL Asesoría y desarrollo de sistemas Guayaquil - Ecuador Cel. +59387171157 -- TIP 8: explain analyze es tu amigo