> Puedes hacer el explain analyze con ese valor nuevo de work_mem 2048 MB > a ver que hizo con el Sort Method, pues me da la impresión que el > problema esta ahí en el Sort Method > > Creo que no se trata de las cantidad de JOIN, hay que detectar donde es > el cuello de botella en el plan.
Uhmmm, sería una buena idea usar explain como dice Anthony y apagar los Indexes a ver que da me da la ligera impresión que los índices creados no son los necesarios en esa caso. > > saludos > > On 22/02/16 12:38, Hellmuth Vargas wrote: >> >> Hola Anthony >> >> Gracias por la pregunta: actualmente se tiene configurado así la >> maquina:. >> >> cat postgresql.conf | grep -i 'work_mem' >> >> work_mem = 16MB # min 64kB >> maintenance_work_mem = 512MB # min 1MB >> >> Aunque también probé colocando hasta 2048 MB y no cambia en mucho la >> verdad >> >> >> set local work_mem='2048 MB' >> select t.descripcionmovimiento, t.fechamto, t.horamto, t.fechaact, >> t.horaact, t.usuario, t.identificacionusuario, >> t.tipomovimientosusuario, c.fecha, c.nombre, c.regionalath, >> c.regionaltdv, c.tiposolicitud, 1 as cant >> from public.ath_tecnicosv2 t >> left join public.ath_cajerosv2 c on >> t.identificacionusuario=c.identificacion and t.fechamto=c.fecha >> where fecha >= '20160218' and fechamto >= '20160218' >> group by t.descripcionmovimiento, t.fechamto, t.horamto, t.fechaact, >> t.horaact, t.usuario, t.identificacionusuario, >> t.tipomovimientosusuario, c.fecha, c.nombre, c.regionalath, >> c.regionaltdv, c.tiposolicitud,1 >> >> >> Group (cost=60388.03..65631.12 rows=749012 width=179) >> -> Sort (cost=60388.03..60762.54 rows=749012 width=179) >> Sort Key: t.descripcionmovimiento, t.fechamto, t.horamto, >> t.fechaact, t.horaact, t.usuario, t.identificacionusuario, >> t.tipomovimientosusuario, c.fecha, c.nombre, c.regionalath, >> c.regionaltdv, c.tiposolicitud >> -> Merge Join (cost=7.77..6784.44 rows=749012 width=179) >> Merge Cond: ((c.fecha = t.fechamto) AND >> (c.identificacion = t.identificacionusuario)) >> -> Index Only Scan using idx_ath_cajerosv2_comp on >> ath_cajerosv2 c (cost=0.08..169.88 rows=9072 width=64) >> Index Cond: (fecha >= '2016-02-18'::date) >> -> Materialize (cost=0.11..2533.11 rows=94366 width=123) >> -> Index Only Scan using idx_ath_tecnicosv2_comp >> on ath_tecnicosv2 t (cost=0.11..2485.92 rows=94366 width=123) >> Index Cond: (fechamto >= '2016-02-18'::date) >> >> >> >> >> >> >> >> >> >> Y pues tengo otras tablas muchísimo mas grandes (35 Millones de >> registros) con consultas con varios join y no se tardan tanto ( en el >> mismo cluster de base de datos) >> >> >> >> >> >> >> >> >> >> 2016-02-22 10:13 GMT-05:00 Anthony Sotolongo <asotolo...@gmail.com >> <mailto:asotolo...@gmail.com>>: >> >> Hola Hellmuth, que valor tiene tu work_mem a la hora de realizar >> esa consulta?, pues se observa varios: >> Sort Method: external merge Disk: 247448kB >> >> lo cual indica que esta realizando esa operación de ordenamiento >> en disco!!! >> >> Saludos >> Anthony >> >> >> On 22/02/16 11:55, Hellmuth Vargas wrote: >>> >>> Hola Lista >>> Les tengo el siguiente desafio pues no he podido dar con el tema, >>> tengo dos tablas >>> >>> CREATE TABLE ath_tecnicosv2 >>> ( >>> descripcionmovimiento character varying(160), >>> fechamto date, >>> horamto character varying(8), >>> fechaact character varying(8), >>> horaact character varying(8), >>> usuario character varying(50), >>> identificacionusuario bigint, >>> tipomovimientosusuario character varying(25), >>> id bigserial NOT NULL >>> ) >>> WITH ( >>> OIDS=FALSE >>> ); >>> >>> -- tamaño: 1639200 registros >>> >>> CREATE UNIQUE INDEX idx_u_ath_tecnicosv2_id >>> ON ath_tecnicosv2 >>> USING btree >>> (id); >>> >>> CREATE INDEX idx_ath_tecnicosv2_comp >>> ON ath_tecnicosv2 >>> USING btree >>> (fechamto, identificacionusuario, descripcionmovimiento COLLATE >>> pg_catalog."default", horamto COLLATE pg_catalog."default", >>> fechaact COLLATE pg_catalog."default", horaact COLLATE >>> pg_catalog."default", usuario COLLATE pg_catalog."default", >>> tipomovimientosusuario COLLATE pg_catalog."default"); >>> >>> CREATE INDEX idx_ath_tecnicosv2_fecha2 >>> ON public.ath_tecnicosv2 >>> USING btree >>> (fechamto asc, identificacionusuario asc,id); >>> >>> >>> CREATE TABLE ath_cajerosv2 >>> ( >>> fecha date, >>> nombre character varying(60), >>> regionalath character varying(24), >>> regionaltdv character varying(54), >>> tiposolicitud character varying(10), >>> id_usuario character varying(4), >>> identificacion bigint, >>> usuario character varying(36), >>> cant bigint, >>> id bigserial NOT NULL >>> ) >>> WITH ( >>> OIDS=FALSE >>> ); >>> >>> -- tamaño: 132050 registros >>> >>> CREATE UNIQUE INDEX idx_u_ath_cajerosv2_id >>> ON ath_cajerosv2 >>> USING btree >>> (id); >>> >>> CREATE INDEX idx_ath_cajerosv2_comp >>> ON ath_cajerosv2 >>> USING btree >>> (fecha, identificacion, nombre COLLATE pg_catalog."default", >>> regionalath COLLATE pg_catalog."default", regionaltdv COLLATE >>> pg_catalog."default", tiposolicitud COLLATE pg_catalog."default"); >>> >>> CREATE INDEX idx_ath_cajerosv2_fecha2 >>> ON public.ath_cajerosv2 >>> USING btree >>> (fecha asc, identificacion asc,id); >>> >>> -- consulta Básica Inicial: >>> select t.descripcionmovimiento, t.fechamto, t.horamto, >>> t.fechaact, t.horaact, t.usuario, t.identificacionusuario, >>> t.tipomovimientosusuario, c.fecha, c.nombre, c.regionalath, >>> c.regionaltdv, c.tiposolicitud, 1 as cant >>> from public.ath_tecnicosv2 t >>> join public.ath_cajerosv2 c on >>> t.identificacionusuario=c.identificacion and t.fechamto=c.fecha >>> where fecha >= '20160218' and fechamto >= '20160218' >>> group by t.descripcionmovimiento, t.fechamto, t.horamto, >>> t.fechaact, t.horaact, t.usuario, t.identificacionusuario, >>> t.tipomovimientosusuario, c.fecha, c.nombre, c.regionalath, >>> c.regionaltdv, c.tiposolicitud,1 >>> >>> >>> -- plan de ejecucion >>> >>> Group (cost=60388.03..65631.12 rows=749012 width=179) >>> -> Sort (cost=60388.03..60762.54 rows=749012 width=179) >>> Sort Key: t.descripcionmovimiento, t.fechamto, t.horamto, >>> t.fechaact, t.horaact, t.usuario, t.identificacionusuario, >>> t.tipomovimientosusuario, c.fecha, c.nombre, c.regionalath, >>> c.regionaltdv, c.tiposolicitud >>> -> Merge Join (cost=7.77..6784.44 rows=749012 width=179) >>> Merge Cond: ((c.fecha = t.fechamto) AND >>> (c.identificacion = t.identificacionusuario)) >>> -> Index Only Scan using idx_ath_cajerosv2_comp on >>> ath_cajerosv2 c (cost=0.08..169.88 rows=9072 width=64) >>> Index Cond: (fecha >= '2016-02-18'::date) >>> -> Materialize (cost=0.11..2533.11 rows=94366 >>> width=123) >>> -> Index Only Scan using >>> idx_ath_tecnicosv2_comp on ath_tecnicosv2 t (cost=0.11..2485.92 >>> rows=94366 width=123) >>> Index Cond: (fechamto >= >>> '2016-02-18'::date) >>> >>> >>> >>> >>> Alcanzamos a esperar 45 minutos por el resultado de la consulta >>> y no había terminado. >>> >>> Entonces empezamos a revisar cada tabla: cada una por separado no >>> se demora la consulta: >>> ------------- >>> -- tabla ath_tecnicosv2 >>> >>> select t.descripcionmovimiento, t.fechamto, t.horamto, >>> t.fechaact, t.horaact, t.usuario, t.identificacionusuario, >>> t.tipomovimientosusuario >>> from public.ath_tecnicosv2 t >>> where t.fechamto between '20160218' and now() >>> order by t.identificacionusuario,t.fechamto >>> >>> >>> Sort (cost=7682.15..7729.33 rows=94366 width=123) (actual >>> time=192.756..216.720 rows=96462 loops=1) >>> Sort Key: identificacionusuario, fechamto >>> Sort Method: external merge Disk: 11744kB >>> -> Index Only Scan using idx_ath_tecnicosv2_comp on >>> ath_tecnicosv2 t (cost=0.11..2533.11 rows=94366 width=123) >>> (actual time=1.382..60.523 rows=96462 loops=1) >>> Index Cond: ((fechamto >= '2016-02-18'::date) AND >>> (fechamto <= now())) >>> Heap Fetches: 0 >>> Total runtime: 223.940 ms >>> >>> >>> >>> >>> >>> ----------------------- >>> -- tabla ath_cajerosv2 >>> >>> select c.fecha, c.nombre, c.regionalath, c.regionaltdv, >>> c.tiposolicitud,c.identificacion >>> from public.ath_cajerosv2 c >>> where fecha between '20160218' and now() >>> order by c.identificacion,c.fecha >>> plan 3 >>> >>> Sort (cost=293.69..298.22 rows=9072 width=64) (actual >>> time=9.959..10.501 rows=9046 loops=1) >>> Sort Key: identificacion, fecha >>> Sort Method: quicksort Memory: 1641kB >>> -> Index Only Scan using idx_ath_cajerosv2_comp on >>> ath_cajerosv2 c (cost=0.08..174.42 rows=9072 width=64) (actual >>> time=1.174..6.215 rows=9046 loops=1) >>> Index Cond: ((fecha >= '2016-02-18'::date) AND (fecha <= >>> now())) >>> Heap Fetches: 0 >>> Total runtime: 10.928 ms >>> >>> >>> >>> >>> >>> por lo tanto el problema es el JOIN , realice un JOIN con solo >>> los ID (no se demora mucho): >>> >>> ---------------------- >>> >>> select t.id <http://t.id> as tecnicos_id,c.id <http://c.id> as >>> cajeros_id >>> from public.ath_tecnicosv2 t >>> join public.ath_cajerosv2 c on >>> t.identificacionusuario=c.identificacion and t.fechamto=c.fecha >>> where fecha >= '20160218' and fechamto >= '20160218' >>> group by 1,2 >>> >>> >>> >>> --- plan 4 >>> >>> Group (cost=27378.71..28502.23 rows=749012 width=16) (actual >>> time=14665.728..20729.334 rows=9736174 loops=1) >>> -> Sort (cost=27378.71..27753.21 rows=749012 width=16) >>> (actual time=14665.725..18538.695 rows=9736174 loops=1) >>> Sort Key: t.id <http://t.id>, c.id <http://c.id> >>> Sort Method: external merge Disk: 247448kB >>> -> Merge Join (cost=4.34..5263.12 rows=749012 width=16) >>> (actual time=2.168..2993.563 rows=9736174 loops=1) >>> Merge Cond: ((c.fecha = t.fechamto) AND >>> (c.identificacion = t.identificacionusuario)) >>> -> Index Only Scan using idx_ath_cajerosv2_fecha2 >>> on ath_cajerosv2 c (cost=0.08..100.58 rows=9072 width=20) >>> (actual time=1.027..12.524 rows=9046 loops=1) >>> Index Cond: (fecha >= '2016-02-18'::date) >>> Heap Fetches: 0 >>> -> Materialize (cost=0.09..1081.08 rows=94366 >>> width=20) (actual time=1.131..1006.430 rows=9738392 loops=1) >>> -> Index Only Scan using >>> idx_ath_tecnicosv2_fecha2 on ath_tecnicosv2 t >>> (cost=0.09..1033.90 rows=94366 width=20) (actual >>> time=1.128..20.970 rows=96459 loops=1) >>> Index Cond: (fechamto >= >>> '2016-02-18'::date) >>> Heap Fetches: 0 >>> Total runtime: 21264.042 ms >>> >>> ----- >>> Por lo tanto, reescribí la consulta, primero haciendo el JOIN >>> entre ID y luego vinculando las tablas con estos mismos IDS pero >>> no funciono, se sigue demorando mucho... si hago JOIN por las >>> tablas por separado no se demoran: >>> select t.descripcionmovimiento, t.fechamto, t.horamto, >>> t.fechaact, t.horaact, t.usuario, t.identificacionusuario, >>> t.tipomovimientosusuario >>> from ( >>> select t.id <http://t.id> as tecnicos_id,c.id <http://c.id> as >>> cajeros_id >>> from public.ath_tecnicosv2 t >>> join public.ath_cajerosv2 c on >>> t.identificacionusuario=c.identificacion and t.fechamto=c.fecha >>> where fecha >= '20160218' and fechamto >= '20160218' >>> group by 1,2 >>> ) as x >>> join public.ath_tecnicosv2 t on t.id <http://t.id>=x.tecnicos_id >>> plan 5 >>> Merge Join (cost=27378.79..81818.32 rows=749012 width=123) >>> (actual time=18134.833..28281.834 rows=9736174 loops=1) >>> Merge Cond: (t_1.id <http://t_1.id> = t.id <http://t.id>) >>> -> Group (cost=27378.71..28502.23 rows=749012 width=16) >>> (actual time=17462.700..23149.037 rows=9736174 loops=1) >>> -> Sort (cost=27378.71..27753.21 rows=749012 width=16) >>> (actual time=17462.698..21212.132 rows=9736174 loops=1) >>> Sort Key: t_1.id <http://t_1.id>, c.id <http://c.id> >>> Sort Method: external merge Disk: 247448kB >>> -> Merge Join (cost=4.34..5263.12 rows=749012 >>> width=16) (actual time=0.097..3588.954 rows=9736174 loops=1) >>> Merge Cond: ((c.fecha = t_1.fechamto) AND ( >>> c.identificacion = t_1.identificacionusuario)) >>> -> Index Only Scan using >>> idx_ath_cajerosv2_fecha2 on ath_cajerosv2 c (cost=0.08..100.58 >>> rows=9072 width=20) (actual time=0.057..14.490 rows=9046 loops=1) >>> Index Cond: (fecha >= '2016-02-18'::date) >>> Heap Fetches: 0 >>> -> Materialize (cost=0.09..1081.08 >>> rows=94366 width=20) (actual time=0.038..1253.519 rows=9738392 >>> loops=1) >>> -> Index Only Scan using >>> idx_ath_tecnicosv2_fecha2 on ath_tecnicosv2 t_1 >>> (cost=0.09..1033.90 rows=94366 width=20) (actual >>> time=0.035..25.707 rows=96459 loops=1) >>> Index Cond: (fechamto >= >>> '2016-02-18'::date) >>> Heap Fetches: 0 >>> -> Index Scan using idx _u_ath_tecnicosv2_id on ath_tecnicosv2 >>> t (cost=0.09..46129.90 rows=1639202 width=131) (actual >>> time=1.746..1950.852 rows=11281027 loops=1) >>> Total runtime: 28768.255 ms >>> >>> ----------------- >>> select >>> c.fecha, c.nombre, c.regionalath, c.regionaltdv, c.tiposolicitud >>> from ( >>> select t.id <http://t.id> as tecnicos_id,c.id <http://c.id> as >>> cajeros_id >>> from public.ath_tecnicosv2 t >>> join public.ath_cajerosv2 c on >>> t.identificacionusuario=c.identificacion and t.fechamto=c.fecha >>> where fecha >= '20160218' and fechamto >= '20160218' >>> group by 1,2 >>> ) as x >>> join public.ath_cajerosv2 c on c.id <http://c.id>=x.cajeros_id >>> plan 6 >>> Hash Join (cost=32278.13..47788.27 rows=749012 width=56) (actual >>> time=17682.541..29054.853 rows=9736174 loops=1) >>> Hash Cond: (x.cajeros_id = c.id <http://c.id>) >>> -> Subquery Scan on x (cost=27378.71..31498.27 rows=749012 >>> width=8) (actual time=17588.940..24201.101 rows=9736174 loops=1) >>> -> Group (cost=27378.71..28502.23 rows=749012 width=16) >>> (actual time=17588.939..23095.463 rows=9736174 loops=1) >>> -> Sort (cost=27378.71..27753.21 rows=749012 >>> width=16) (actual time=17588.936..21161.819 rows=9736174 loops=1) >>> Sort Key: t.id <http://t.id>, c_1.id >>> <http://c_1.id> >>> Sort Method: external merge Disk: 247448kB >>> -> Merge Join (cost=4.34..5263.12 >>> rows=749012 wid th=16) (actual time=0.076..3827.427 rows=9736174 >>> loops=1) >>> Merge Cond: ((c_1.fecha = t.fechamto) >>> AND (c_1.identificacion = t.identificacionusuario)) >>> -> Index Only Scan using >>> idx_ath_cajerosv2_fecha2 on ath_cajerosv2 c_1 (cost=0.08..100.58 >>> rows=9072 width=20) (actual time=0.039..16.084 rows=9046 loops=1) >>> Index Cond: (fecha >= >>> '2016-02-18'::date) >>> Heap Fetches: 0 >>> -> Materialize (cost=0.09..1081.08 >>> rows=94366 width=20) (actual time=0.031..1317.914 rows=9738392 >>> loops=1) >>> -> Index Only Scan using >>> idx_ath_tecnicosv2_fecha2 on ath_tecnicosv2 t >>> (cost=0.09..1033.90 rows=94366 width=20) (actual >>> time=0.029..23.961 rows=96459 loops=1) >>> Â Index Cond: (fechamto >= >>> '2016-02-18'::date) >>> Heap Fetches: 0 >>> -> Hash (cost=2886.20..2886.20 rows=132050 width=64) (actual >>> time=92.976..92.976 rows=132050 loops=1) >>> Buckets: 8192 Batches: 4 Memory Usage: 3281kB >>> -> Seq Scan on ath_cajerosv2 c (cost=0.00..2886.20 >>> rows=132050 width=64) (actual time=0.451..43.008 rows=132050 >>> loops=1) >>> Total runtime: 29573.302 m >>> >>> Entonces no se pueda ser!!! >>> incluso (a manera de comentario) replantee la consultas asi y >>> tampoco: >>> with base1 as ( >>> select t.descripcionmovimiento, t.fechamto, t.horamto, >>> t.fechaact, t.horaact, t.usuario, t.identificacionusuario, >>> t.tipomovimientosusuario >>> from ( >>> select t.identificacionusuario,t.fechamto from >>> public.ath_tecnicosv2 t where fechamto >= '20160218' >>> intersect >>> select c.identificacion,c.fecha from public.ath_cajerosv2 c >>> where fecha >= '20160218' >>> ) as x >>> join public.ath_tecnicosv2 t on >>> >>> (t.identificacionusuario,t.fechamto)=(x.identificacionusuario,x.fechamto) >>> ), base2 as ( >>> select x.identificacionusuario,x.fechamto,c.fecha, c.nombre, >>> c.regionalath, c.regionaltdv, c.tiposolicitud >>> from ( >>> select t.identificacionusuario,t.fechamto from >>> public.ath_tecnicosv2 t where fechamto >= '20160218' >>> intersect >>> select c.identificacion,c.fecha from public.ath_cajerosv2 c >>> where fecha >= '20160218' >>> ) as x >>> join public.ath_cajerosv2 c on >>> (c.identificacion,c.fecha)=(x.identificacionusuario,x.fechamto) >>> ) >>> select u.descripcionmovimiento, u.fechamto, u.horamto, >>> u.fechaact, u.horaact, u.usuario, u.identificacionusuario, >>> u.tipomovimientosusuario, u.fecha, u.nombre, u.regionalath, >>> u.regionaltdv, u.tiposolicitud, 1 as cant >>> from ( >>> select >>> x.descripcionmovimiento, x.fechamto, x.horamto, x.fechaact, >>> x.horaact, x.usuario, x.identificacionusuario, >>> x.tipomovimientosusuario, y.fecha, y.n ombre, y.regionalath, >>> y.regionaltdv, y.tiposolicitud,y.identificacionusuario as >>> identificacionusuario2,y.fechamto as fechamto2 >>> from base1 as x >>> cross join base2 as y >>> ) as u where u.identificacionusuario=u.identificacionusuario2 and >>> u.fechamto=u.fechamto2 >>> order by 2,3,7 >>> --- >>> Sort (cost=8260.00..8260.48 rows=961 width=1010) >>> Sort Key: x.fechamto, x.horamto, x.identificacionusuario >>> CTE base1 >>> -> Nested Loop (cost=0.19..3929.54 rows=21842 width=123) >>> -> Subquery Scan on x_1 (cost=0.08..1528.40 rows=533 >>> width=12) >>> -> HashSetOp Intersect (cost=0.08..1526.27 >>> rows=533 width=12) >>> -> Append (cost=0.08..1422.83 rows=103438 >>> width=12) >>> -> Subquery Scan on "*SELECT* 2" >>> (cost=0.08..125.87 rows=9072 width=12) >>> -> Index Only Scan using >>> idx_ath_cajerosv2_fecha on ath_cajerosv2 c (cost=0.08..89.58 >>> rows=9072 width=12) >>> Index Cond: (fecha >= >>> '2016-02-18'::date) >>> -> Subquery Scan on "*SELECT* 1" (cost=0.09..1296.96 >>> rows=94366 width=12) >>> -> Index Only Scan using >>> idx_ath_tecnicosv2_fecha on ath_tecnicosv2 t_1 >>> (cost=0.09..919.50 rows=94366 width=12) >>> Index Cond: (fechamto >= >>> '2016-02-18'::date) >>> -> Index Only Scan using idx_ath_tecnicosv2_comp on >>> ath_tecnicosv2 t (cost=0.11..4.08 rows=107 width=123) >>> Index Cond: ((fechamto = x_1.fechamto) AND >>> (identificacionusuario = x_1.identificacionusuario)) >>> CTE base2 >>> -> Nested Loop (cost=0.17..2175.54 rows=1760 width=68) >>> -> Subquery Scan on x_2 (cost=0.08..1528.40 rows=533 >>> width=12) >>> -> HashSetOp Intersect (cost=0.08..1526.27 >>> rows=533 width=12) >>> -> Append (cost=0.08..1422.83 rows=103438 width=12) >>> -> Subquery Scan on "*SELECT* 2_1" >>> (cost=0.08..125.87 rows=9072 width=12) >>> -> Index Only Scan using >>> idx_ath_cajerosv2_fecha on ath_cajerosv2 c_2 (cost=0.08..89.58 >>> rows=9072 width=12) >>> Index Cond: (fecha >= >>> '2016-02-18'::date) >>> -> Subquery Scan on "*SELECT* 1_1" >>> (cost=0.09..1296.96 rows=94366 width=12) >>> -> Index Only Scan using >>> idx_ath_tecnicosv2_fecha on ath_tecnicosv2 t_2 >>> (cost=0.09..919.50 rows=94366 width=12) >>> Index Cond: (fechamto >= >>> '2016-02-18'::date) >>> -> Index Only Scan using idx_ath_cajerosv2_comp on >>> ath_cajerosv2 c_1 (cost=0.08..1.15 rows=17 width=64) >>> Index Cond: ((fecha = x_2.fechamto) AND >>> (identificacion = x_2.identificacionusuario)) >>> -> Hash Join (cost=22.88..2145.40 rows=961 width=1010) >>> Hash Cond: ((x.identificacionusuario = >>> y.identificacionusuario) AND (x.fechamto = y.fechamto)) >>> -> CTE Scan on base1 x (cost=0.00..174.74 rows=21842 >>> width=638) >>> -> Hash (cost=14.08..14.08 rows=1760 width=384) >>> -> CTE Scan on base2 y (cost=0.00..14.08 >>> rows=1760 width=384) >>> >>> He cambiado la estructura de las tablas: antes todos los campos >>> eran del tipo TEXT y por lo tanto la tablas tenían ademas tablas >>> TOAST y supuse que el JOIN con estas era lo que estaba penalizando. >>> Las especificaciones, es un PostgreSQL 9.4.5, corriendo en un >>> CentOS 6 con discos de estado solido. 12 GB de RAM, 12 >>> Lista les agradezco sus comentratios el ideas de que puede ser el >>> probelma. >>> -- >>> Cordialmente, Ing. Hellmuth I. Vargas S. Esp. Telemática y >>> Negocios por Internet >>> Oracle Database 10g Administrator Certified Associate >>> EnterpriseDB Certified PostgreSQL 9.3 Associate >> >> -- >> Cordialmente, Ing. Hellmuth I. Vargas S. Esp. Telemática y Negocios >> por Internet >> Oracle Database 10g Administrator Certified Associate >> EnterpriseDB Certified PostgreSQL 9.3 Associate > -- Saludos, Gilberto Castillo ETECSA, La Habana, Cuba - 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