|
Thiago:
Acredito que você tem nas mãos um excelente
servidor. Não tenho como analisar os tempos que citastes, mas posso passar as
configurações que enviastes com as que tenho em um servidor semelhante. O
servidor é um Dell Poweredge Dual Xeon 3.0, 4 G de ram e discos hotswap scsi
15.000k em raid 0, duas placas de rede, etc ... Detalhe este servidor usa
W2K.
Suas configurações comparadas com as que
uso:
shared_buffers =
2048 # uso
36620
temp_buffers =
2048 # uso o
default 1000 work_mem =
2048
# uso 64048 max_fsm_pages =
20000 # uso
320000 effective_cache_size = 1000 # uso
4096
maintenence_work_mem=???? # uso
16384
max_stack_deph=????
# uso 4096 random_page_cost =
4 # idem
fsync =
on
# idem enable_bitmapscan = on
# idem
enable_seqscan
= ?? # uso
off
enable_tidscan
= ?? # uso
off
enable_hashagg =
?? # uso
off
Espero
que ajude,
Sergio
----- Original Message -----
Sent: Monday, September 25, 2006 3:59
PM
Subject: Re: [PostgreSQL-Brasil]
Performance SCSI
Olá... Tente rodar um REINDEX.
2006/9/23, Thiago Risso <[EMAIL PROTECTED]>:
Boa
noite Lista,
A situação é a seguinte : Tinhamos um servidor
rodando postgres em um PC P4 com HD IDE com 1GB de RAM ... Migramos este
SERVIDOR PARA UM DELL POWER EDGE XEON com HD SCSI 10k e 3GB de RAM (800Mhz)
... Ambos radando em LINUX REISERFS , porém o antigo em DEBIAN e o NOVO
EM FEDORA 5 (64 bits) ...
Teo,ricamente, as consultas deveriam ficar
bem mais rápidas mas teoricamente, não é isso que esta acontecendo ....
Abaixo segue as configurações e testes realizados ....
SERVER ANTIGO :
shared_buffers =
2048 # min 16 or
max_connections*2, 8KB each temp_buffers =
2048 # min 100, 8KB
each work_mem =
2048
# min 64, size in KB #max_fsm_pages = 20000 #effective_cache_size =
1000 # typically 8KB
each #random_page_cost =
4 # units are
one sequential page fetch #fsync = on #enable_bitmapscan =
on
gerenciador=# ANALYZE ; ANALYZE Time: 5919,603
ms gerenciador=# SELECT H.hierarquia,F.funcao,count(id_cand) AS quant
FROM ((area_cand AC INNER JOIN teste_agencia.hierarquia H ON H.id_hierarquia
= AC.id_hierarquia) INNER JOIN agencia.FUNCAO F ON F.id_funcao =
AC.id_funcao)INNER JOIN agencia.candidato_empresa CE ON CE.id_candidato =
AC.id_cand WHERE id_empresa = 1 AND F.id_funcao NOT IN(SELECT id_funcao FROM
agencia.funcao_emp WHERE id_empresa = 1) GROUP BY H.hierarquia,F.funcao
ORDER BY quant DESC LIMIT 10; hierarquia
| funcao |
quant --------------+----------------+------- Auxiliar
| Administrativo | 1408 Assistente |
Administrativo | 1327 Operador |
Produção |
833 Profissional | Engenharia |
714 Estágio |
Engenharia |
563 Estágio | Administrativo
| 507 Profissional | Recepcionista |
490 Profissional | Montador
| 347 Auxiliar |
Vendas |
330 Profissional |
Vendas |
305 (10 rows)
Time: 157,624
ms
gerenciador=# EXPLAIN SELECT
H.hierarquia,F.funcao,count(id_cand) AS quant FROM ((area_cand AC INNER JOIN
teste_agencia.hierarquia H ON H.id_hierarquia = AC.id_hierarquia) INNER JOIN
agencia.FUNCAO F ON F.id_funcao = AC.id_funcao)INNER JOIN
agencia.candidato_empresa CE ON CE.id_candidato = AC.id_cand WHERE
id_empresa = 1 AND F.id_funcao NOT IN(SELECT id_funcao FROM
agencia.funcao_emp WHERE id_empresa = 1) GROUP BY H.hierarquia,F.funcao
ORDER BY quant DESC LIMIT
10;
QUERY PLAN -------------------------------------------------------------------------------------------------------------------------------------------------- Limit
( cost=22473.89..22473.91 rows=10
width=32) -> Sort (cost=22473.89..22478.25
rows=1747 width=32) Sort
Key: count(ac.id_cand)
-> HashAggregate (cost=22357.97..22379.80 rows=1747 width=32)
-> Hash Join (cost=1057.51..22336.70 rows=2835
width=32)
Hash Cond: ("outer".id_hierarquia =
"inner".id_hierarquia)
-> Hash Join (cost= 1056.36..22290.67 rows=3307
width=24)
Hash Cond: ("outer".id_funcao =
"inner".id_funcao)
-> Nested Loop (cost=1017.18..22185.24 rows=6636 width=12)
-> Bitmap Heap Scan on candidato_empresa ce
(cost=1017.18..2364.09 rows=2793
width=4)
Recheck Cond: (id_empresa =
1)
->
Bitmap Index Scan on
candidato_empresa_index_candidato_empresa (cost=0.00..1017.18
rows=2793
width=0)
Index Cond: (id_empresa = 1)
-> Index Scan using index_area_cand on area_cand ac
(cost=0.00..7.07 rows=2
width=12)
Index Cond: ("outer".id_candidato = ac.id_cand
)
-> Hash (cost=38.81..38.81 rows=146
width=20)
-> Seq Scan on funcao f (cost=32.15..38.81 rows=146
width=20)
Filter: (NOT (hashed subplan))
SubPlan
-> Seq Scan on funcao_emp (cost=0.00..32.12 rows=9
width=4)
Filter: (id_empresa = 1)
-> Hash (cost=1.12..1.12 rows=12
width=16)
-> Seq Scan on hierarquia h (cost=0.00..1.12 rows=12
width=16) (23 rows)
SERVER NOVO :
shared_buffers =
3072
work_mem = 4096
maintenance_work_mem = 32768 max_fsm_pages =
120000
wal_buffers = 32 effective_cache_size =
131072
random_page_cost = 1 #fsync = on #enable_bitmapscan =
on
gerenciador=# ANALYZE ; ANALYZE Time: 8902,698
ms gerenciador=# SELECT H.hierarquia ,F.funcao,count(id_cand) AS quant
FROM ((area_cand AC INNER JOIN teste_agencia.hierarquia H ON H.id_hierarquia
= AC.id_hierarquia) INNER JOIN agencia.FUNCAO F ON F.id_funcao =
AC.id_funcao)INNER JOIN agencia.candidato_empresa CE ON CE.id_candidato =
AC.id_cand WHERE id_empresa = 1 AND F.id_funcao NOT IN(SELECT id_funcao FROM
agencia.funcao_emp WHERE id_empresa = 1) GROUP BY H.hierarquia,F.funcao
ORDER BY quant DESC LIMIT 10; hierarquia
| funcao | quant
--------------+----------------+------- Auxiliar
| Administrativo | 1408 Assistente |
Administrativo | 1327 Operador |
Produção |
833 Profissional | Engenharia |
714 Estágio |
Engenharia | 563
Estágio | Administrativo
| 507 Profissional | Recepcionista |
490 Profissional | Montador
| 347 Auxiliar |
Vendas |
330 Profissional |
Vendas |
305 (10 rows)
Time: 374,312
ms
gerenciador=#
EXPLAIN SELECT H.hierarquia,F.funcao,count(id_cand) AS quant FROM
((area_cand AC INNER JOIN teste_agencia.hierarquia H ON H.id_hierarquia =
AC.id_hierarquia) INNER JOIN agencia.FUNCAO F ON F.id_funcao =
AC.id_funcao)INNER JOIN agencia.candidato_empresa CE ON CE.id_candidato =
AC.id_cand WHERE id_empresa = 1 AND F.id_funcao NOT IN(SELECT id_funcao FROM
agencia.funcao_emp WHERE id_empresa = 1) GROUP BY H.hierarquia,F.funcao
ORDER BY quant DESC LIMIT
10;
QUERY
PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------- Limit
(cost= 10725.34..10725.36 rows=10
width=32) -> Sort (cost=10725.34..10729.70
rows=1747 width=32) Sort
Key: count(ac.id_cand)
-> HashAggregate (cost=10609.42..10631.25 rows=1747 width=32)
-> Hash Join (cost=2165.25..10582.15 rows=3636
width=32)
Hash Cond: ("outer".id_hierarquia =
"inner".id_hierarquia)
-> Hash Join (cost= 2164.10..10524.94 rows=3939
width=24)
Hash Cond: ("outer".id_funcao =
"inner".id_funcao)
-> Merge Join (cost=2124.93..10406.86 rows=7904 width=12)
Merge Cond: ("outer".id_cand =
"inner".id_candidato)
-> Index Scan using index_area_cand on area_cand ac
(cost=0.00..7428.58 rows=294416
width=12)
-> Sort (cost=2124.93..2133.24 rows=3326
width=4)
Sort Key:
ce.id_candidato
-> Index Scan using candidato_empresa_index_candidato_empresa on
candidato_empresa ce (cost=0.00..1930.36 rows=3326
width=4)
Index Cond: (id_empresa = 1)
-> Hash (cost=38.81..38.81 rows=146
width=20)
-> Seq Scan on funcao f (cost=32.15..38.81 rows=146
width=20)
Filter: (NOT (hashed subplan))
SubPlan
-> Seq Scan on funcao_emp (cost=0.00..32.12 rows=9
width=4)
Filter: (id_empresa = 1)
-> Hash (cost=1.12..1.12 rows=12
width=16)
-> Seq Scan on hierarquia h (cost=0.00..1.12 rows=12
width=16) (23 rows)
** NOS DOIS SERVERS FOI EXECUTADO VACCUM E ANALYZE
ANTES DO TESTE ...
Atenciosamente,
Thiago
Risso Rhadar
_______________________________________________ Grupo
de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o
manual http://pgdocptbr.sourceforge.net/
Para editar suas
opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios
_______________________________________________ Grupo de Usuários do
PostgreSQL no Brasil Antes de perguntar consulte o
manual http://pgdocptbr.sourceforge.net/
Para editar suas opções ou
sair da lista acesse a página da lista
em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios
|