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

Re: problema con query lento

From: Diego Ayala <netdiego81(at)gmail(dot)com>
To: Silvio Quadri <silvioq(at)gmail(dot)com>
Cc: Postgres Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: problema con query lento
Date: 2011-04-14 13:40:30
Message-ID: BANLkTimJ0LS82xMG=AF4aEYAntxRod+VRw@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Silvio, realmente ahora si no entiendo nada.. le cambie el order by por otro
campo, que no es el item.id y el explain m devuelve esto,
 explain analyze SELECT llamado_grupo.id as grupo_id,llamado_grupo.nro_
grupo, llamado_grupo.abastecimiento_simultaneo,
 llamado_grupo.contrato_abierto , item.id as item_id,  item.cantidad,
item.cantidad_minima,  item.descripcion,
   item.estado,  item.nro_linea,  item.precio_promedio_catalogo,
item.precio_unitario,  item.unidad_medida,
    item.zona,producto_n5.id as prod_id,producto_n5.codigo,
item.usuario_alta
      FROM sicp.item_solicitado item
      INNER JOIN  catalogo.producto_n5 producto_n5 on   item.producto_n5_id=
producto_n5.id
      INNER JOIN sicp.llamado_grupo llamado_grupo on llamado_grupo.id =
item.llamado_grupo_id
       WHERE  llamado_grupo.llamado_id = 127968
           and item.ver= true
        order by  item.nro_linea
        desc limit 10
        offset 0


"Limit  (cost=7092.42..7092.45 rows=10 width=127) (actual time=0.193..0.199
rows=2 loops=1)"
"  ->  Sort  (cost=7092.42..7099.73 rows=2924 width=127) (actual
time=0.191..0.193 rows=2 loops=1)"
"        Sort Key: item.nro_linea"
"        Sort Method:  quicksort  Memory: 25kB"
"        ->  Nested Loop  (cost=0.00..7029.24 rows=2924 width=127) (actual
time=0.146..0.177 rows=2 loops=1)"
"              ->  Nested Loop  (cost=0.00..6203.84 rows=2924 width=115)
(actual time=0.131..0.150 rows=2 loops=1)"
"                    ->  Index Scan using idx_llamado_grupo_id_llamado_id on
llamado_grupo  (cost=0.00..54.30 rows=27 width=14) (actual time=0.085..0.090
rows=2 loops=1)"
"                          Index Cond: (llamado_id = 127968)"
"                    ->  Index Scan using idx_item_llamado_grupo_id_item_id
on item_solicitado item  (cost=0.00..226.41 rows=108 width=109) (actual
time=0.024..0.025 rows=1 loops=2)"
"                          Index Cond: (item.llamado_grupo_id =
llamado_grupo.id)"
"                          Filter: item.ver"
"              ->  Index Scan using producto_n5_pkey on producto_n5
(cost=0.00..0.27 rows=1 width=20) (actual time=0.008..0.009 rows=1 loops=2)"
"                    Index Cond: (producto_n5.id = item.producto_n5_id)"
"Total runtime: 0.333 ms"

Cambio totalmente el resultado con solo cambiar el campo por el cual
ordenaba(antes era item.id, ahora le puse item.nro_linea), esto en
produccion... por que en desarrollo con el campo item.id en order by, igual
m arrojaba un buen plan..

El 13 de abril de 2011 16:09, Silvio Quadri <silvioq(at)gmail(dot)com> escribió:

> El día 13 de abril de 2011 16:43, Alvaro Herrera
> <alvherre(at)alvh(dot)no-ip(dot)org> escribió:
> > Excerpts from Diego Ayala's message of mié abr 13 16:34:10 -0300 2011:
> >> estos son los indices sobre la tabla item_solicitado
> >
> > Es posible que esta consulta se beneficie de este indice:
> >
> > create index llamado_grupo_id_llamado_id on llamado_grupo (id,
> llamado_id);
> >
> > Pruebalo y nos cuentas
> >
>
> Si no funciona probá también
> a) modificar el índice (llamado_grupo_id) por (llamado_grupo_id, id desc).
> b) sacarle el order del final a ver si cambia el plan.
> c) Hacelo con un join implícito, es muy poco probable que cambie algo,
> pero no cuesta nada.
>
> Silvio
>

In response to

Responses

pgsql-es-ayuda by date

Next:From: Juan Manuel Acuña BarreraDate: 2011-04-14 14:47:57
Subject: Presentación y solicitud de recomendación
Previous:From: Crispin T.Date: 2011-04-14 13:22:50
Subject: problema con insert bytea

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