Skip site navigation (1) Skip section navigation (2)

Re: consulta que demora demasiado

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Alejandro Carrillo <fasterzip(at)yahoo(dot)es>
Cc: Juan <smalltalker(dot)marcelo(at)gmail(dot)com>, ferd agu <ferdagu(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: consulta que demora demasiado
Date: 2012-09-06 02:47:43
Message-ID: 1346899028-sup-4143@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
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


In response to

pgsql-es-ayuda by date

Next:From: Edwin QuijadaDate: 2012-09-07 21:10:48
Subject: Problema con Zona horaria
Previous:From: Alejandro CarrilloDate: 2012-09-06 01:09:52
Subject: Re: consulta que demora demasiado

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group