Fwd: Funcion SQL mas lenta que un SQL

From: "Silvio Quadri" <silvioq(at)gmail(dot)com>
To: postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Fwd: Funcion SQL mas lenta que un SQL
Date: 2008-03-11 16:05:35
Message-ID: 61dc71dc0803110905s436713b2l9e1f10f84b548e98@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2008/3/11, Omar Zeballos <ozeballos(at)kantutani(dot)com>:

>
>
> Definitivamente, aún sin hacer las uniones realice la prueba del explain
> plan y es otro plan de ejecucion el que realiza y es mucho mas lento en el
> caso de la funcion, si me permiten les envio los resultados, ahora esto se
> puso mas oscuro para mi, si alguien tiene una explicacion talvez trabajaria
> mejor al definir estos obejtos en la base.
>
> SELECT doc.codalmacen, kar.codproducto, sum(kar.cantidad)as CANTIDAD
> FROM kdx_kardex as kar
> INNER JOIN kdx_documentos doc on doc.seqkdxdocumento = kar.seqkdxdocumento
> WHERE (doc.coddocumento='RCP' or doc.coddocumento='INV')
> AND doc.estado='1'
> AND doc.fecha <=$1
> AND kar.codproducto = coalesce($2,kar.codproducto)
> GROUP BY kar.codproducto, doc.codalmacen
>
> el Analyze con valores fijos me da:

> ...

Sacá el Coalesce que impide que te genere un plan apropiado y dividí
la consulta en dos (vas a tener que usar plpgsql) ...
if isnull( $2)
devolvés el query sin tener el codproducto como where
else
devolvés el query teniendo el codproducto como where
end

y listo.

--
Silvio

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Omar Zeballos 2008-03-11 17:05:13 Re: Funcion SQL mas lenta que un SQL
Previous Message leonel 2008-03-11 15:45:50 Re: postgresql 8.3 y ubuntu 7.10