Excerpts from Alejandro Carrillo's message of mié sep 05 22:09:52 -0300 2012:
> No olvidar revisar si en el where se esta filtrando por los índices, en 
> preferencia indices unicos. Además cambiar consultas in por exists, o en el 
> mejor de los casos, pasarlas a subconsultas de tabla (el motor ejecuta las 
> consultas de tabla solo una vez a no ser q tenga un campo de una tabla fuera 
> de la subconsulta).Ej:
> Una consulta asi:
> Select * from tabla1 t1 where t1.campoA in (select t2.campoA from tabla2 t2 
> where t2.estado !='E' and t2.fechainicial < 20120415)

La verdad es que el optimizador es bastante potente, y no es claro que
usar EXISTS en vez de IN sea mejor; tampoco es claro que usar una
subconsulta en FROM sea mejor que un join normal.  En algunos casos
puede ganar, pero no siempre; y este tipo de trucos debería reevaluarse
al migrar de una versión mayor de Postgres a una posterior, puesto que
es posible que el optimizador se haya vuelto más inteligente para
resolver la consulta como estaba originalmente formulada.

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a