[Pgsql-ayuda] analizar un explain

Rodrigo Gallardo lgallardo@computacion.cs.cinvestav.mx
26 Feb 2003 12:21:25 -0600


>>>>> "jose" =3D=3D jose antonio leo <jaleo8@storelandia.com> writes:

    > Hola a todos, me podrias explicar como puedo interpretar un
    > explain analyze de este select Select * from articul where
    > des_art like "%arroz%"

    > { SEQSCAN :startup_cost 0.00 :total_cost 1.14 :rows 1 :width 265
    > :qptargetlist } NOTICE: QUERY PLAN:

    > Seq Scan on art_emp (cost=3D0.00..1.14 rows=3D1 width=3D265) (actual
    > time=3D0.18..0.18) Total runtime: 0.31 msec


    > Que significa rows:1 el numero de fila de que?  y width?  en fin
    > lo unico que se ver es coste y si utiliza indices o es
    > secuencial.  Pero ahora me ha surgico un problemilla con dos
    > tablas y no se encontrar el problema. La misma consulta tarda 20
    > veces mas en una tabla que en otra y no son muy diferentes.

Rows es el n=FAmero de filas que Postgres espera que regresen de la
consulta. Width es el ancho promedio que espera que tengan. Por
ejemplo, en este caso, como usas un LIKE, Postgres espera que una
hilera en la tabla ajuste con tu consulta. Y como le pides todos los
campos, suma el ancho de ellos. Estos datos son relevantes para saber
cuanta memoria y cuanto ancho de banda van a ser consumidos por la
consulta.

En cuanto a lo que tarda la consulta, tiene que ver con el tama=F1o de
la tabla, y con que tan modificadas son. Una tabla que se modifica a
menudo est=E1 muy repartida por el disco, y toma m=E1s tiempo buscar entre
ella. Usa VACUUM ANALYZE. Y trata de generar =EDndices.

--=20
Charlie was a chemist,
But Charlie is no more.
For what he thought was H2O,
Was H2SO4.

Rodrigo
PGP key 1024D/ADC9BC28 2002-02-26 [expires 2004-02-26]
Fingerprint: 7C81 E60C 442E 8FBC D975  2F49 0199 8318 ADC9 BC28