Re: [pgbr-geral] Compilação do PostgreSQL 8.1 para processamento simétrico

2007-06-21 Por tôpico Leandro Guimaraes Faria Corcete DUTRA
Em Qui, 2007-06-21 às 20:52 -0300, Euler Taveira de Oliveira escreveu:
 Leandro Guimaraes Faria Corcete DUTRA wrote:
 
  Se bem que o código com WITH, ao que me
  lembro, é mais chato de escrever e ler que o com CONNECT BY.
  
 A sintaxe do WITH é bizarra, mas é SQL... Então o pessoal decidiu
 (depois de várias discussões calorosas) _por coerência_ implementá-la.
 Sem contar que outros bancos como o DB2 também implementam.

Tudo isso é verdade.  Mas de vez em quando, faz sentido um padrão ‘de
facto’.  Como TCP/IP, por exemplo.

-- 
Leandro Guimarães Faria Corcete DUTRA  [EMAIL PROTECTED]
Atech Fundação Aplicação de Tecnologias Críticas  SP, BR
msnim:[EMAIL PROTECTED]
skype:leandro.gfc.dutra?chat +55 (11) 3040 7300 r151


- - - - -

Politica de Privacidade: Esta mensagem pode conter informacao confidencial e/ou 
privilegiada. Se voce nao for o destinatario ou a pessoa autorizada a receber 
esta mensagem, nao pode usar, copiar ou divulgar as informacoes nela contidas 
ou tomar qualquer acao baseada nessas informacoes. Se voce recebeu esta 
mensagem por engano, por favor avise imediatamente o remetente, respondendo o 
e-mail e em seguida apague-o. Agradecemos sua cooperacao.

Privacy Policy: This message may contain confidential and/or privileged 
information. If you are not the addressee or authorized to receive this for the 
addressee, you must not use, copy, disclose or take any action based on this 
message or any information herein. If you have received this message in error, 
please advise the sender immediately by reply e-mail and delete this message. 
Thank you for your cooperation.___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Compilação do PostgreSQL 8.1 para processamento simétrico

2007-06-20 Por tôpico Leandro Guimaraes Faria Corcete DUTRA
Em Qua, 2007-06-20 às 13:12 -0300, Welington R. Braga escreveu:
 O problema é a natureza deste tipo de aplicação exige uso de arvores.

Sem problemas!


 Qual seria a melhor opção então, ou a sugestão de vocês sobre isso?

A minha seria a do Pascal: duas relações, uma com os dados dos nós,
outra com o relacionamento entre nós.  Isso evita o auto-relacionamento,
o NULL…


-- 
Leandro Guimarães Faria Corcete DUTRA  [EMAIL PROTECTED]
Atech Fundação Aplicação de Tecnologias Críticas  SP, BR
msnim:[EMAIL PROTECTED]
skype:leandro.gfc.dutra?chat +55 (11) 3040 7300 r151


- - - - -

Politica de Privacidade: Esta mensagem pode conter informacao confidencial e/ou 
privilegiada. Se voce nao for o destinatario ou a pessoa autorizada a receber 
esta mensagem, nao pode usar, copiar ou divulgar as informacoes nela contidas 
ou tomar qualquer acao baseada nessas informacoes. Se voce recebeu esta 
mensagem por engano, por favor avise imediatamente o remetente, respondendo o 
e-mail e em seguida apague-o. Agradecemos sua cooperacao.

Privacy Policy: This message may contain confidential and/or privileged 
information. If you are not the addressee or authorized to receive this for the 
addressee, you must not use, copy, disclose or take any action based on this 
message or any information herein. If you have received this message in error, 
please advise the sender immediately by reply e-mail and delete this message. 
Thank you for your cooperation.___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Compilação do PostgreSQL 8.1 para processamento simétrico

2007-06-20 Por tôpico Leandro Guimaraes Faria Corcete DUTRA
Em Qua, 2007-06-20 às 17:23 -0300, Thiago Risso escreveu:
 Será que não seria algo assim [1] ...
 
 [1] http://www.sai.msu.su/~megera/postgres/gist/ltree/

Essa é uma alternativa, outra é o CONNECT BY, módulo do Contrib baseado
no Oracle.

O padrão seria o WITH do ISO.

-- 
Leandro Guimarães Faria Corcete DUTRA  [EMAIL PROTECTED]
Atech Fundação Aplicação de Tecnologias Críticas  SP, BR
msnim:[EMAIL PROTECTED]
skype:leandro.gfc.dutra?chat +55 (11) 3040 7300 r151


- - - - -

Politica de Privacidade: Esta mensagem pode conter informacao confidencial e/ou 
privilegiada. Se voce nao for o destinatario ou a pessoa autorizada a receber 
esta mensagem, nao pode usar, copiar ou divulgar as informacoes nela contidas 
ou tomar qualquer acao baseada nessas informacoes. Se voce recebeu esta 
mensagem por engano, por favor avise imediatamente o remetente, respondendo o 
e-mail e em seguida apague-o. Agradecemos sua cooperacao.

Privacy Policy: This message may contain confidential and/or privileged 
information. If you are not the addressee or authorized to receive this for the 
addressee, you must not use, copy, disclose or take any action based on this 
message or any information herein. If you have received this message in error, 
please advise the sender immediately by reply e-mail and delete this message. 
Thank you for your cooperation.___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Compilação do PostgreSQL 8.1 para processamento simétrico

2007-06-20 Por tôpico Leandro Guimaraes Faria Corcete DUTRA
Em Qua, 2007-06-20 às 17:27 -0300, Welington R. Braga escreveu:
 Mas já é assim. Como eu disse no e-mail especificando o meu cenário:
 
 ...Pra simplificar o cenário, basicamente eu tenho duas tabelas (é
 muito mais do que isso, mas como eu disse é só pra simplificar). Dadas
 essas duas tabelas: Uma tem essa hierarquia, e a outra são dados da
 espécie em si
 
Perfeito então, eu é que não li direito.  Acho que foi o Euler
(desculpe se não) quem falou em auto-relacionamento, e aí eu já
assustei…


 Eu achei uma documentação interessante sobre dados hierarquicos na
 documentação do MySQL
 (http://dev.mysql.com/tech-resources/articles/hierarchical-data.html) 

Fraquinho… o primeiro é o famigerado auto-relacionamento, o segundo o
terrível modelo do Celko.


 http://www.sitepoint.com/article/hierarchical-data-database/2
 http://logbr.reflectivesurface.com/2003/12/17/armazendo-arvores-em-banco-de-dados/
 http://www.intelligententerprise.com/001020/celko1_1.jhtml;jsessionid=NRVVJG3CR52DSQSNDLOSKHSCJUNN2JVN?_requestid=1193324

Não, o Celko não!  O método dele é pura enrolação de embira!  E todos
esses aí são baseados nessa [EMAIL PROTECTED]@¨$%.

-- 
Leandro Guimarães Faria Corcete DUTRA  [EMAIL PROTECTED]
Atech Fundação Aplicação de Tecnologias Críticas  SP, BR
msnim:[EMAIL PROTECTED]
skype:leandro.gfc.dutra?chat +55 (11) 3040 7300 r151


- - - - -

Politica de Privacidade: Esta mensagem pode conter informacao confidencial e/ou 
privilegiada. Se voce nao for o destinatario ou a pessoa autorizada a receber 
esta mensagem, nao pode usar, copiar ou divulgar as informacoes nela contidas 
ou tomar qualquer acao baseada nessas informacoes. Se voce recebeu esta 
mensagem por engano, por favor avise imediatamente o remetente, respondendo o 
e-mail e em seguida apague-o. Agradecemos sua cooperacao.

Privacy Policy: This message may contain confidential and/or privileged 
information. If you are not the addressee or authorized to receive this for the 
addressee, you must not use, copy, disclose or take any action based on this 
message or any information herein. If you have received this message in error, 
please advise the sender immediately by reply e-mail and delete this message. 
Thank you for your cooperation.___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Compilação do PostgreSQL 8.1 para processamento simétrico

2007-06-20 Por tôpico Leandro Guimaraes Faria Corcete DUTRA
Em Qua, 2007-06-20 às 18:08 -0300, Leandro Guimaraes Faria Corcete DUTRA
escreveu:
 Em Qua, 2007-06-20 às 17:23 -0300, Thiago Risso escreveu:
  Será que não seria algo assim [1] ...
  
  [1] http://www.sai.msu.su/~megera/postgres/gist/ltree/
 
   Essa é uma alternativa, outra é o CONNECT BY, módulo do Contrib baseado
 no Oracle.

Aliás, desculpem a auto-resposta mas é uma alternativa de que não
gostei muito: inclui dados redundantes, vide um trecho do código de
amostra:

create table dmoz (
id  int,
nametext,
pathltree
);

copy dmoz from stdin;
1   Top Top
2   Adult   Top.Adult
3   BusinessTop.Adult.Business
4   Opportunities   Top.Adult.Business.Opportunities
5   Home_Based  Top.Adult.Business.Opportunities.Home_Based
6   InternetTop.Adult.Business.Opportunities.Internet


-- 
Leandro Guimarães Faria Corcete DUTRA  [EMAIL PROTECTED]
Atech Fundação Aplicação de Tecnologias Críticas  SP, BR
msnim:[EMAIL PROTECTED]
skype:leandro.gfc.dutra?chat +55 (11) 3040 7300 r151


- - - - -

Politica de Privacidade: Esta mensagem pode conter informacao confidencial e/ou 
privilegiada. Se voce nao for o destinatario ou a pessoa autorizada a receber 
esta mensagem, nao pode usar, copiar ou divulgar as informacoes nela contidas 
ou tomar qualquer acao baseada nessas informacoes. Se voce recebeu esta 
mensagem por engano, por favor avise imediatamente o remetente, respondendo o 
e-mail e em seguida apague-o. Agradecemos sua cooperacao.

Privacy Policy: This message may contain confidential and/or privileged 
information. If you are not the addressee or authorized to receive this for the 
addressee, you must not use, copy, disclose or take any action based on this 
message or any information herein. If you have received this message in error, 
please advise the sender immediately by reply e-mail and delete this message. 
Thank you for your cooperation.___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Compilação do PostgreSQL 8.1 para processamento simétrico

2007-06-20 Por tôpico Euler Taveira de Oliveira
Welington R. Braga wrote:

 O problema é a natureza deste tipo de aplicação exige uso de arvores.
 Qual seria a melhor opção então, ou a sugestão de vocês sobre isso?
 Esta é somente uma das aplicações que exigem este perfil. Mas eu tenho
 outras que estão na mesma situação. Já pensei até em rever os meus
 livros de estrutura de dados e tentar implementar umas rotinas genéricas
 para trabalho com árvores de dados. Será que dá pé? ou tem algo agendado
 sobre isso para as próximas versões do postgres?
 

Infelizmente, a implementação do WITH não ficou pronta a tempo para
entrar no 8.3. :( Então, espere para a 8.4.
O ltree te resolve o problema, mas o que não gosto dele é a repetição da
hierárquia em cada nó.
O CONNECT BY [1] é outra alternativa. É um patch rejeitado pela
comunidade porque não implementa o padrão SQL e sim a sintaxe do ORACLE.

[1] http://gppl.moonbone.ru/

-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Compilação do PostgreSQL 8.1 para processamento simétrico

2007-06-19 Por tôpico Euler Taveira de Oliveira
Welington R. Braga wrote:

 Deixa dar um resumo do meu cenário para ficar mais claro o problema.
 Conversando com o gerente do projeto acho que achei o problema ... é
 tudo ;-) e o sistema teria que ser todo reescrito:
 

corte

 Dadas essas duas tabelas: Uma tem essa hierarquia, e a outra são dados
 da espécie em si.
Enquanto o PostgreSQL não aceita consultas hierárquicas, não aconselho
que use tabelas autorelacionadas que vão ter muitas consultas
hierárquicas. :(
O ideal como você mesmo adimitiu é reestruturar o sistema para separar a
informação.


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Compilação do PostgreSQL 8.1 para processamento simétrico

2007-06-18 Por tôpico Euler Taveira de Oliveira
Welington R. Braga wrote:

 Já monitorei, mas nada indica qual processador esta em uso e o problema
 continua:
faça assim:
# top -u usuario-do-postgres
depois pressione '1'. Você vai ver as CPUs dai é só ver qual delas está
trabalhando.

 Eu tenho uma consulta que roda periodicamente importando dados de uma
 tabela para outra fazendo apenas algumas conversões de dados e numa
 quantidade na ordem de milhares de registros. Após executar essa
 consulta o acesso a base principal fica muito lento.
 
Você está utilizando apenas uma transação? Acho o seu problema é
paralelizar a sua rotina de importação, assim você pode aproveitar
melhor os recursos de seu servidor.

 O problema pelo que percebi é que quando a consulta roda, o banco joga
 todos os registros para memória e lá ficam até ocorrer um commit.
 
Por curiosidade que tipo de comandos SQL tem nessa rotina? INSERT? COPY?

 Eu notei que o uso de memória sobe absurdamente chegando a ocupar 100%
 dos meus 8GB de RAM - que não é muito mas não é tão baixo assim. E
 eventualmente um dos meu processadores grudam o velocimetro nos 100%
 também e assim ficam por um bom tempo.
 
CPU a 100% é normal. Mas memória a 100% é problemático e se for por um
bom tempo é crítico. Acho que o problema todo está na sua rotina de
importação.


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral