From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Guillermo Villanueva <guillermovil(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: mejorar performance de select |
Date: | 2011-05-24 20:06:03 |
Message-ID: | 1306267331-sup-9128@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Excerpts from Guillermo Villanueva's message of lun may 23 10:46:34 -0400 2011:
> Tengo creado un índice de la tabla por periodos.
> Si realizo la consulta:
> select periodo from nacer.historicotemp group by periodo
> o
> select distinct periodo from nacer.historicotemp
Creo que este es el tipo de consulta que se puede responder rápidamente
usando "skip scan", pero no tenemos esa funcionalidad en Postgres.
En un skip scan, se va al índice y se busca un valor X (que puede ser el
menor valor presente en el índice, o bien un valor de borde determinado
por la consulta). Luego empiezas de nuevo a recorrer el índice usando
un predicado "y > X"; con eso obtienes el segundo valor, potencialmente
evitando recorrer una parte importante del índice (todos aquellos
registros que tienen idénticos valores de X). Y así sucesivamente,
obtienes todos los valores "distinct".
Me pregunto en qué tipo de casos esta funcionalidad será realmente útil.
Digo, como para considerar implementarla como un primer proyecto dentro
del ejecutor y optimizador ...
--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
From | Date | Subject | |
---|---|---|---|
Next Message | Emanuel Calvo | 2011-05-24 20:18:21 | [OT] Charla Gratuita: Tema Libre sobre PostgreSQL |
Previous Message | Alvaro Herrera | 2011-05-24 19:52:34 | Re: Tamaño de indices??? |