From: | "ViBaSoft" <vibasoft(at)gmail(dot)com> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Consulta complejas |
Date: | 2012-04-13 03:53:04 |
Message-ID: | 000001cd1928$f0ac6ab0$d2054010$@com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Ahora todas las pruebas que hago estare haciendo en mi notebook sobre una memoria total que tengo de 4GB, y la tabla mas grande que tengo es 6.500.000 registro en facturas.
work_mem = 32MB
shared_buffers=1024MB
Esto ajuste ahora mismo y la velocidad no ha cambiado
Bueno, según veo en el reporte, lo que más se está tardando en el plan de ejecución son los
nodos de tipo Hash y el Hash Left join, que constituye el 65,2 % de la consulta.
Fíjate en tu consulta cuando hiciste el EXPLAIN ANALYZE donde es que están estos Hash, que me imagino
que debe ser en los JOINS, y trata de cambiar la secuencia de los mismos, o sea, la tabla que más tiene
datos debería estar a la izquierda:
Ej.: WHERE tablagrande.id = tablachiquita.id
La secuencia tengo de esa forma, en los joins ahora cambie esa secuencia que no tenia de esa forma pero sigue igual la velocidad
Luego, haz un ALTER TABLE tablagrande SET STATISTICS 1000;
para que se actulizen las estadístiscas en esa tabla.
Esto hice sobre la columna factura en la tabla facturas que es la mas grande
Ahora, según vemos, las tablas factura y facturas son las que más se demoran. ¿Podrías enviar esta información?
SELECT relname,
relkind,
reltuples,
relpages
FROM pg_class
WHERE relname LIKE 'factura%';
"factura";"r";1.41349e+006;49391
"facturaa";"r";1199;17
"facturaa_idfacturaa_seq";"S";1;1
"facturacnf";"r";9;1
"facturacnf_idfacturacnf_seq";"S";1;1
"facturas";"r";6.50302e+006;175375
Esto nos dará el número total de entradas en la tablas e índices que comienzen con
factura, así como el número de bloques en disco ocupados por cada tabla e índice de factura.
Recomiendo también que hagas un VACUUM ANALYZE sobre esas tablas
Saludos
Periodicamente lo hago ahora
Vuelvo a probar y todo sigue igual
Despues de cambiar algunos parámetro esto me saca el explain analyze
Per node type stats
node type
count
sum of times
% of query
Append
1
0.072 ms
0.0 %
GroupAggregate
1
0.047 ms
0.0 %
Hash
17
1.127 ms
0.0 %
Hash Join
17
6.385 ms
0.0 %
HashAggregate
1
5.799 ms
0.0 %
Index Scan
4
0.337 ms
0.0 %
Materialize
1
0.066 ms
0.0 %
Nested Loop
5
1.761 ms
0.0 %
Nested Loop Left Join
3
0.508 ms
0.0 %
Seq Scan
23
48462.535 ms
100.0 %
Sort
2
8.112 ms
0.0 %
Per table stats
Table name
Scan count
Total time
% of query
scan type
count
sum of times
% of table
compra
1
0.096 ms
0.0 %
Seq Scan
1
0.096 ms
100.0 %
compras
1
0.000 ms
0.0 %
Index Scan
1
0.000 ms
0.0 %
depositos
2
0.008 ms
0.0 %
Seq Scan
2
0.008 ms
100.0 %
divisiones
2
0.008 ms
0.0 %
Seq Scan
2
0.008 ms
100.0 %
existencias
1
0.057 ms
0.0 %
Index Scan
1
0.057 ms
100.0 %
factura
1
0.168 ms
0.0 %
Index Scan
1
0.168 ms
100.0 %
facturas
1
48459.800 ms
99.9 %
Seq Scan
1
48459.800 ms
100.0 %
familiasp
2
0.061 ms
0.0 %
Seq Scan
2
0.061 ms
100.0 %
formaspre
1
0.005 ms
0.0 %
Seq Scan
1
0.005 ms
100.0 %
lineasp
2
0.089 ms
0.0 %
Seq Scan
2
0.089 ms
100.0 %
marcas
2
0.004 ms
0.0 %
Seq Scan
2
0.004 ms
100.0 %
prod_transf
1
0.112 ms
0.0 %
Index Scan
1
0.112 ms
100.0 %
prod_transfd
1
0.056 ms
0.0 %
Seq Scan
1
0.056 ms
100.0 %
productos
2
1.400 ms
0.0 %
Seq Scan
2
1.400 ms
100.0 %
productosb
2
0.161 ms
0.0 %
Seq Scan
2
0.161 ms
100.0 %
productosp
1
0.793 ms
0.0 %
Seq Scan
1
0.793 ms
100.0 %
rubros
2
0.018 ms
0.0 %
Seq Scan
2
0.018 ms
100.0 %
secciones
2
0.036 ms
0.0 %
Seq Scan
2
0.036 ms
100.0 %
From | Date | Subject | |
---|---|---|---|
Next Message | Eduardo Arenas C. | 2012-04-13 05:06:04 | Re: Consulta complejas |
Previous Message | ViBaSoft | 2012-04-13 02:58:44 | RV: Consulta complejas |