Buenas tardes. Si me lo puedes enviar ami te lo agradecería, me gustaría probarlo en mi infraestructura.
Gracias de antemano El 29/2/2016 5:05 p. m., "Felipe de Jesús Molina Bravo" < fjmolinabr...@gmail.com> escribió: > Que tal!! > > En mi equipo portátil con fedora 23 (8 Gb RAM) dos containers (lxc): > > 1. Con postgresql 9.4.5 (2 Gb RAM) > 2. Con postgresql 9.5.1 (2 Gb RAM) > > En el script de prueba que ejecuto se crean 2 tablas unlogged con la > siguiente > estructura: > > 1. CREATE unlogged TABLE _gc_tb as > SELECT t[1]::INTEGER idb2, > t[2]::INTEGER idc1, > coalesce( t[3], '' ) rama, > rama2arreglo(coalesce( t[3], '' )::varchar) arama > FROM .... > > Indices: > CREATE INDEX _gc_tb_arama on "_gc_tb" USING GIN (arama); > CREATE INDEX _gc_tb_idb2idc1 on "_gc_tb" USING btree (idb2, idc1); > > No. de registros: > 120130 > > 2. CREATE unlogged TABLE _gc_cat AS > SELECT idppicat, > idprodxintegrar, > tipo, > valor, > estado, > idsll, > idsfte, > rama2arreglo(rama) > arama, > rama, > rvar, > nodec > FROM ( SELECT x[1]::integer > idppicat, > x[2]::integer > idprodxintegrar, > x[3]::char(1) > tipo, > (NULLIF(x[4], ''))::numeric > valor, > x[5]::char(1) > estado, > x[6]::text > rama, > x[7]::text > rvar, > x[8]::text > idsll, > x[9]::text > idsfte, > x[10]::integer > nodec > FROM .... > > > Indices: > CREATE INDEX _gc_cat_arama on _gc_cat USING GIN (arama); > > No. de registros: > 91932 > > > Al ejecutar la consulta en ambos servidores: > EXPLAIN ANALYZE > WITH > du AS > ( SELECT idprodxintegrar, a.idb2, a.idc1, tipo, > valor, estado, idsll, idsfte, b.nodec, > b.rama _match --sera nulo si no hay > match > FROM _gc_tb a > LEFT join _gc_cat b > on > ( a.arama <@ b.arama and > a.arama @> b.arama > ) > )select * from du; > > > Se obtiene: > > - pgsql 9.4.5: > QUERY > PLAN > > ----------------------------------------------------------------------------------------------------------------------------------------- > CTE Scan on du (cost=492858.81..498380.71 rows=276095 width=154) > (actual time=18.380..34169.650 rows=120130 loops=1) > CTE du > -> Nested Loop Left Join (cost=0.03..492858.81 rows=276095 > width=154) (actual time=18.374..33851.684 rows=120130 loops=1) > -> Seq Scan on _gc_tb a (cost=0.00..3235.30 rows=120130 > width=40) (actual time=0.009..50.643 rows=120130 loops=1) > -> Bitmap Heap Scan on _gc_cat b (cost=0.03..4.06 rows=2 > width=178) (actual time=0.276..0.278 rows=1 loops=120130) > Recheck Cond: ((a.arama <@ arama) AND (a.arama @> > arama)) > Rows Removed by Index Recheck: 3 > Heap Blocks: exact=125574 > -> Bitmap Index Scan on _gc_cat_arama > (cost=0.00..0.03 rows=2 width=0) (actual time=0.269..0.269 rows=4 > loops=120130) > Index Cond: ((a.arama <@ arama) AND (a.arama @> > arama)) > Planning time: 0.448 ms > Execution time: 34207.916 ms > > - En pgsql 9.5.1 > - Nunca termina. Aproximadamente a los 5 minutos la maquina virtual se > apaga. > > Lo mismo pasa si quito el explain analyze. > > Les comento que en otra estructura semejante pero en un servidor donde se > tienen 2 virtuales con KVM (pgsql 9.5.1 y 9.4.3)el resultado en el virtual > con > pgsql 9.5.1 era parecido, excepto que en este reiniciaba el motor de > postgres y > sacaba a los usuarios conectados. > > Al monitorearlo nos damos cuenta de que se acaba la memoria y el swap. > > Tengo un script, que es con el que estoy probando; su tamaño es de 1.1 Mb > (empacad); si alguien lo requiere para probar se lo mando a su correo...o > en donde lo > puedo poner? > > Alguna sugerencia de por donde investigar para corregir este problema?!! > > De antemano agradezco su atención > > Saludos! >