Re: forzar indices

From: Alvaro Herrera <alvherre(at)surnet(dot)cl>
To: Leonardo Boet Sánchez <boet(at)gtm(dot)tel(dot)etecsa(dot)cu>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: forzar indices
Date: 2005-06-27 19:32:11
Message-ID: 20050627193211.GA11775@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Mon, Jun 27, 2005 at 03:21:18PM -0400, Leonardo Boet Sánchez wrote:
> Aunque parezca, el optimizador no siempre hace lo mejor, y no solo es
> en Postgres, tambien pasa en Oracle, puedes hallar mejor rendimientos
> con algunas directivas, como por ejemplo diciéndole que utilice un
> índice específico (Para algo se invento el tunning).

Ese no es el punto; lo que importa es conseguir que el optimizador haga
su trabajo lo mejor posible. En la gran mayoria de los casos lo hace,
cuando se equivoca es porque el usuario esta haciendo algo mal o no ha
afinado los parametros de entrada al optimizador. Por ej. falta hacer
ANALYZE, hay un problema con la conversion de tipos, son necesarias
estadisticas mas detalladas, falta o sobra algun indice, etc.

Hay algunos casos muy puntuales que necesitan modificaciones a las
variables globales (enable_seqscan etc) para que las consultas funcionen
apropiadamente. Pero son muy pocos y muy especificos, y estoy casi
seguro que no es el caso al que te estas enfrentando. (Habria que verlo
para juzgarlo)

> Estuve leyendo sobre usar seq_scan y me surge la duda de si esta
> sentencia es para toda la base de datos ya que hay que hacer lo
> siguiente: seq_scan =off , ejecutar la secuencia y luego ponerle
> seq_scan =on, por lo que me parece que esta sentencia tiene influencia
> sobre todo el motor y no me cuadra.

No, si tu cambias enable_seqscan en tu sesion (SET enable_seqscan)
entonces solo afecta a tu sesion (distinto es si lo cambias en
postgresql.conf, pero eso no debe hacerse jamas). El punto de
devolverlo siempre a ON es que las siguientes consultas que envies no
sean afectadas.

Ten en cuenta que esas variables enable_* son mas que nada para
depuracion de una consulta puntual, no para setearlas en operacion en
forma permanente.

--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"There was no reply" (Kernel Traffic)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Santillan 2005-06-27 19:58:10 Postgresql Windows
Previous Message Leonardo Boet Sánchez 2005-06-27 19:21:18 RE: forzar indices