----- Original Message ----- From: "Alvaro Herrera" <[EMAIL PROTECTED]>
To: "Juan Ramirez" <[EMAIL PROTECTED]>
Cc: "PostGreSQL Lista de Ayuda" <pgsql-es-ayuda@postgresql.org>
Sent: Friday, November 14, 2008 4:10 PM
Subject: Re: [pgsql-es-ayuda] join - versus - exists [performance]


Juan Ramirez escribió:

cual tiene más performance, yo estoy acostumbrado cuando hago
relaciones entre tablas a utilizar "exists" en lugar de los join.

Depende de cada caso particular.  Y hay que tener muy en cuenta que a
veces IN es muy rapido, en cambio NOT IN es muy lento; y ahi donde
EXISTS pueda ser muy rapido, NOT EXISTS puede ser muy lento y
viceversa.  Y en todos los casos hay que tener mucho cuidado con la
forma en que se resuelven los valores NULL, porque a veces es
contraintuitiva.

También depende de las versiones de Postgres, porque a medida que el
optimizador aprende trucos nuevos, las cosas que antes eran lentas puede
que dejen de serlo, y pasar a ser más rápidas que las formas que antes
eran la mejor alternativa.


El optimizador aprende?

Acaso el optimizador incluye un algoritmo de redes neuronales o genético?

Atentamente,

RAUL DUQUE
Bogotá, Colombia

--
Alvaro Herrera http://www.amazon.com/gp/registry/DXLWNGRJD34J
"El sabio habla porque tiene algo que decir;
el tonto, porque tiene que decir algo" (Platon).
--
TIP 7: no olvides aumentar la configuración del "free space map"

--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Responder a