Re: [pgbr-geral] Compilação do PostgreSQL 8.1 para processamento simétrico
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
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
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
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
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
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
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
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