El día 14 de abril de 2011 09:02, Diego Ayala <netdieg...@gmail.com> escribió: > Amigos, una duda que no me quedo claro respecto a esto es lo siguiente, > ayer, hice pruebas en un servidor de desarrollo, y en el de produccion sobre > este query, y viendo el resultado del explain, me llamo la atencion la > diferencia de tiempo, y por sobre todo, la forma que utilizo los indices, en > produccion, solo utiliza las pk, en desarrollo, donde casi es nula la > actividad, utilizo los indices de todas las tablas, por que ese > comportamiento tan diferente, realmente tiene algo que ver la cantidad de > movimiento que existe en un servidor y otro, para que decida ejecutarse de > una y otra forma.. inclusive, hice la prueba en el servidor de produccion > durante la noche, al no haber actividad, y obtuve el mismo resultado del > explain.. les paso para el resultado de ambos, que realmente me llama mucho > la atencion, el servidor de desarrollo tiene la misma version del > postgresql, es tambien de 64 bits, pero solo tiene 4 cores y 4 GB de RAM. > > EXPLAIN EN PRODUCCION, SOLO USA LAS PKs.... > > Limit (cost=0.00..3898.64 rows=10 width=128) (actual > time=356.290..41325.074 rows=2 loops=1)" > " -> Nested Loop (cost=0.00..1120468.40 rows=2874 width=128) (actual > time=356.288..41325.067 rows=2 loops=1)" > " -> Nested Loop (cost=0.00..1119657.11 rows=2874 width=116) > (actual time=356.268..41325.034 rows=2 loops=1)" > " -> Index Scan Backward using pk_item on item_solicitado > item (cost=0.00..200976.40 rows=2608137 width=110) (actual > time=0.051..9049.918 rows=2610986 loops=1)" > " Filter: ver" > " -> Index Scan using pk_llamado_grupo on llamado_grupo > (cost=0.00..0.34 rows=1 width=14) (actual time=0.009..0.009 rows=0 > loops=2610986)" > " Index Cond: (llamado_grupo.id = item.llamado_grupo_id)" > " Filter: (llamado_grupo.llamado_id = 127968)" > " -> 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: 41325.263 ms" > > > > EXPLAIN EN DESARROLLO, USO LOS INDICES > > "Limit (cost=13514.89..13514.92 rows=10 width=128) (actual > time=44.792..44.799 rows=2 loops=1)" > " -> Sort (cost=13514.89..13522.47 rows=3031 width=128) (actual > time=44.788..44.790 rows=2 loops=1)" > " Sort Key: item.id" > " Sort Method: quicksort Memory: 25kB" > " -> Hash Join (cost=987.75..13449.39 rows=3031 width=128) (actual > time=44.742..44.770 rows=2 loops=1)" > " Hash Cond: (item.producto_n5_id = producto_n5.id)" > " -> Nested Loop (cost=0.00..12187.82 rows=3031 width=116) > (actual time=0.043..0.085 rows=2 loops=1)" > " -> Index Scan using idx_llamado_grupo_llamado_id on > llamado_grupo (cost=0.00..107.25 rows=28 width=14) (actual > time=0.024..0.030 rows=2 loops=1)" > " Index Cond: (llamado_id = 127968)" > " -> Index Scan using > idx_item_solicitado_llamado_grupo_id on item_solicitado item > (cost=0.00..430.10 rows=108 width=110) (actual time=0.015..0.019 rows=1 > loops=2)" > " Index Cond: (item.llamado_grupo_id = > llamado_grupo.id)" > " Filter: item.ver" > " -> Hash (cost=647.22..647.22 rows=18522 width=20) (actual > time=42.738..42.738 rows=18522 loops=1)" > " -> Seq Scan on producto_n5 (cost=0.00..647.22 > rows=18522 width=20) (actual time=0.004..21.221 rows=18522 loops=1)" > "Total runtime: 45.033 ms" > >
¿Tenés el mismo juego de datos y están los vacuum hechos? Silvio -- Silvio Quadri - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda