Re: Sobre uso de memoria RAM

From: Leonardo Castillo <leonardo(at)hacer(dot)ula(dot)ve>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Sobre uso de memoria RAM
Date: 2006-12-18 15:52:16
Message-ID: 6.1.1.1.2.20061218113946.056e5d18@deneb.hacer.ula.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Saludos Amigos listeros...

Les mando explain del SQL que hace días les comenté colapsa mi servidor.

Unique (cost=10270.77..10270.85 rows=8 width=42) (actual
time=164809.890..164811.213 rows=602 loops=1)
-> Sort (cost=10270.77..10270.79 rows=8 width=42) (actual
time=164809.885..164810.154 rows=602 loops=1)
Sort Key: cc.ubicacion, cc.acceso, cc.ext_acceso
-> Nested Loop (cost=1688.57..10270.65 rows=8 width=42) (actual
time=297.884..164803.436 rows=602 loops=1)
Join Filter: ("outer".cod_titulo =
("inner".cod_titulo)::numeric)
-> Nested Loop (cost=1688.57..5380.25 rows=1 width=53)
(actual time=122.856..692.840 rows=602 loops=1)
Join Filter: ("outer".cod_desc =
("inner".codesc)::numeric)
-> Nested Loop (cost=1688.57..5266.35 rows=1
width=63) (actual time=122.782..626.678 rows=1668 loops=1)
-> Nested Loop (cost=1688.57..5256.14 rows=1
width=128) (actual time=122.757..596.625 rows=737 loops=1)
-> Nested Loop (cost=1688.57..5248.24
rows=1 width=92) (actual time=122.671..558.570 rows=737 loops=1)
-> Hash
Join (cost=1688.57..5235.17 rows=3 width=50) (actual time=122.592..525.325
rows=737 loops=1)
Hash Cond:
(("outer".acceso)::text = ("inner".acceso)::text)
Join Filter:
("outer".ext_acceso = "inner".ext_acceso)
-> Nested
Loop (cost=12.04..3551.42 rows=1438 width=25) (actual time=42.154..336.688
rows=72270 loops=1)
-> Index Scan using
tipodesc01 on descript de02 (cost=0.00..4.25 rows=1 width=4) (actual
time=0.172..0.219 rows=1 loops=1)
Index Cond:
(((tipo)::text = 'PAR'::text) AND ((tipo)::text = 'PAR'::text))
Filter:
((descriptor)::text = 'SANTA LUCIA'::text)
-> Bitmap Heap Scan on
coddesc ct02 (cost=12.04..3525.60 rows=1438 width=35) (actual
time=41.956..265.399 rows=72270 loops=1)
Recheck Cond:
(ct02.cod_desc = ("outer".codesc)::numeric)
-> Bitmap Index
Scan on cod_desc (cost=0.00..12.04 rows=1438 width=0) (actual
time=38.656..38.656 rows=72270 loops=1)
Index Cond:
(ct02.cod_desc = ("outer".codesc)::numeric)
-> Hash
(cost=1675.04..1675.04 rows=595 width=25) (actual time=80.332..80.332
rows=5442 loops=1)
-> Bitmap Heap Scan on
document ct01 (cost=6.57..1675.04 rows=595 width=25) (actual
time=4.254..70.322 rows=5442 loops=1)
Filter:
((fecha_iso)::text ~~ '2003%'::text)
-> Bitmap Index
Scan on fecha_iso01 (cost=0.00..6.57 rows=595 width=0) (actual
time=3.568..3.568 rows=5442 loops=1)
Index Cond:
(((fecha_iso)::text >= '2003'::character varying) AND ((fecha_iso)::text <
'2004'::character varying))
-> Index Scan using central_pk on
central cc (cost=0.00..4.34 rows=1 width=42) (actual time=0.036..0.039
rows=1 loops=737)
Index Cond:
((("outer".acceso)::text = (cc.acceso)::text) AND ("outer".ext_acceso =
cc.ext_acceso))
Filter: (((nivel_reg)::text <>
's'::text) AND ((tipo_liter)::text = 'U11'::text) AND ((codigo IS NULL) OR
((codigo)::text = ''::text) OR ((codigo)::text = 'U0240000000*'::text)))
-> Index Scan using codtit_pk on codtit
ctt (cost=0.00..7.89 rows=1 width=36) (actual time=0.044..0.047 rows=1
loops=737)
Index Cond: ((("outer".acceso)::text
= (ctt.acceso)::text) AND ("outer".ext_acceso = ctt.ext_acceso))
Filter: ((portada)::text = '1'::text)
-> Index Scan using coddesc_pk on coddesc
ct03 (cost=0.00..10.15 rows=4 width=35) (actual time=0.026..0.034 rows=2
loops=737)
Index Cond: ((("outer".acceso)::text =
(ct03.acceso)::text) AND ("outer".ext_acceso = ct03.ext_acceso))
-> Index Scan using tipodesc01 on descript
de03 (cost=0.00..112.77 rows=75 width=4) (actual time=0.009..0.029 rows=4
loops=1668)
Index Cond: ((tipo)::text = 'EOPN'::text)
Filter: (((descriptor)::text <>
'VALIDADO'::text) OR ((tipo)::text <> 'EOPN'::text))
-> Seq Scan on titulos tit (cost=0.00..2805.16 rows=139016
width=4) (actual time=0.003..112.409 rows=138978 loops=602)
Total runtime: 164813.463 ms

select distinct
CC.acceso,CC.ext_acceso,CC.UBICACION

from (( ( ((DOCUMENT CT01
INNER JOIN CENTRAL CC ON
(CT01.ACCESO = CC.ACCESO AND CT01.EXT_ACCESO = CC.EXT_ACCESO) and
( CT01.FECHA_ISO LIKE '2003%' ) ))
INNER JOIN (CODDESC CT02 INNER JOIN DESCRIPT DE02 ON
(CT02.COD_DESC = DE02.CODESC) AND DE02.TIPO = 'PAR' and (
DE02.DESCRIPTOR = 'SANTA LUCIA' AND DE02.TIPO = 'PAR') ) on
(CC.acceso = CT02.acceso and CC.ext_acceso = CT02.ext_acceso ))
INNER JOIN (CODDESC CT03 INNER JOIN DESCRIPT DE03 ON
(CT03.COD_DESC = DE03.CODESC) AND DE03.TIPO = 'EOPN' and Not (
DE03.DESCRIPTOR = 'VALIDADO' AND DE03.TIPO = 'EOPN') ) on
(CC.acceso = CT03.acceso and CC.ext_acceso = CT03.ext_acceso ))
)
, codtit ctt
inner join titulos tit on
(ctt.portada = '1' and ctt.cod_titulo = tit.cod_titulo)
where CC.nivel_reg <> 's'
AND (CC.TIPO_LITER = 'U11')
AND (CC.CODIGO IS NULL OR CC.CODIGO IN ('','U0240000000*'))

and CC.acceso = ctt.acceso and
CC.ext_acceso = ctt.ext_acceso ORDER BY 3 ASC;

CENTRAL: 300.000 registros
DESCRIPT: 70.000 registros
CODESC: 450.000 registros
TITULOS: 400.000 registros
CODTIT: 650.000 registros
DOCUMENT: 300.000 registros

Otra cosa que me parece de lo más curiosa.. es que si el año es 1992 la
consulta trae 250 registros y tarda 10 segundos, si la consulta es 1990 la
consulta trae 750 registros y tarda 75 seg. LA MISMA CONSULTA....

Para echarle más leña al fuego, estas consultas en Sybase Anywhere 9 tardan
15 seg. El problema con este manejador es que luego de 8 usuarios colapsa.
En SQL Server las consultas tardan 2 seg. y no le importan cuantos usuarios
estén conectados.

Les agradezco cualquier ayuda por favor...

Atte.
Leonardo Castillo

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Agustin Casiva 2006-12-18 16:01:36 Re: Como abrir varios puertos para un servidor de postgresql
Previous Message RENSO OSWALDO TEJADA AGUIRRE 2006-12-18 14:32:20 Como abrir varios puertos para un servidor de postgresql