Re: [pgbr-geral] Benchmark PostgreSQL x MySQL
From: fabio.tel...@gmail.com Date: Mon, 31 Mar 2014 13:52:14 -0300 Algumas dicas se vai fazer testes: 1) Vai ter suporte a transações? O MySQL usa MyISAM como padrão, que não tem suporte a transações. Se for usar isso no MySQL, use unlogged tables no PostgreSQL para ter uma comparação mais justa. Não é a mesma coisa, mas é mais justo. Só um detalhe no que o Fabio escreveu acima: a partir da versão 5.5 do MySQL o storage engine padrão do MySQL é o InnoDB, e não o MyISAM [1]. [1] http://dev.mysql.com/doc/refman/5.5/en/innodb-default-se.html Marçal de Lima Hokama -- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] CPU com picos de 99% com espera em I/O
Date: Mon, 17 Jun 2013 15:13:10 -0300 From: cibel...@gmail.com To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] CPU com picos de 99% com espera em I/O (...) Estamos trabalhando com pool de conex§es no hibernate na aplicaþÒo, atualmente assim que se inicia a aplicaþÒo eu tenho por volta de 600 conex§es no banco de dados. Segue as informaþ§es do servidor: HP ProLiant DL380 G7 2x Processador Intel« Xeon« X5660 Six Core de 2,80 GHz, 12MB cache L3 16 GB de Mem¾ria RAM 300 GB de Disco RÝgido SAS 10K Interface de rede 10/100/1000Mb/s á á Olá Cibele, Esse número me chamou a atenção. A aplicação realmente tem 600 conexões abertas simultaneamente com seus clientes? Reforço que cada conexão de um cliente com o banco de dados abre um processo no seu servidor, consumindo recursos do mesmo, conforme [1]. A função básica do pool de conexões (mais em [2]) é manter aberto um conjunto de conexões entre a aplicação e o banco de dados de forma a acelerar o desempenho da aplicação, evitando o tempo necessário para abrir e fechar uma conexão com o banco. Mas o número de conexões desse pool deve ser baseado na estimativa do número de conexões simultâneas ao banco. Se esse número for superestimado, você vai ter um monte de conexões abertas e ociosas, consumindo recursos dos servidores. [1] http://www.postgresql.org/docs/9.3/static/connect-estab.html [2] http://en.wikipedia.org/wiki/Connection_pool Marçal de Lima Hokama -- e-mail: mhok...@hotmail.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] Armazenar ou não imagens
From: bemanuel...@gmail.com Date: Sat, 1 Jun 2013 22:20:46 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Armazenar ou não imagens É pessoal, li muito esses dias e realmente, DEPENDE :) Estou só dando um retorno da minha decisão. Decidi por usar o banco mesmo, principalmente pelo fator portabilidade. Nesse projeto agora terei acesso ao servidor, mas pretendo criar uma solução que atenda não só esse cliente, então poderão haver casos em que o cliente poderá hospedar em outros servidores que eu não tenha o mesmo acesso. E pra completar achei uma solução que faz boa parte do processamento da imagem ( redimensionamento, rotacionar, etc... ) dentro do próprio banco - sei que alguns estão se retorcendo na cadeira, mas essa é uma das minhas necessidades, afinal qualquer usuário poderá publicar e eles não se preocuparão com tamanho da imagem ou saberão utilizar um Gimp. A extensão que encontrei é a PostPic [1], está a 3 anos sem manutenção mas funcionou em todos os testes que fiz. Só terei claro algum trabalho ( considerável ) por causa da Serialização de imagem. Por causa da pressa farei tudo focando no banco, mas farei o mais organizado possível - não sou da vertente do Extreme Go Horse [2] - se for de interesse de alguém do grupo, posso depois documentar tudo que fiz ( até pra receber alguma sugestão de melhorias no código - que eu sei que não será perfeito ) - estou usando Hibernate, mas integro muita coisa no banco, gosto de usar o melhor de dois mundos. [1] https://github.com/drotiro/postpic [2] http://www.carlostristacci.com.br/blog/extreme-go-horse-xgh/ Bruno E. A. Silva. Olá Bruno, Eu já passei por esse dilema algumas vezes, e segue abaixo alguns links que utilizei como referência, acrescentando aos que os demais colegas já postaram. Estão um pouco antigos, mas as idéias continuam atuais: [1] http://research.microsoft.com/apps/pubs/default.aspx?id=64525 [2] http://deepselect.blogspot.com.br/2006/05/to-blob-or-not-to-blob.html Atenciosamente, Marçal de Lima Hokama -- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ferramenta de monitoração Postgre no Debian
Date: Thu, 17 Jan 2013 22:50:45 -0200 From: lis...@guedesoft.net To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Ferramenta de monitoração Postgre no Debian Em 17 de janeiro de 2013 21:53, Danilo Silva danilo.dsg.go...@gmail.com escreveu: Em 17 de janeiro de 2013 18:33, Ricardo rlgome...@hotmail.com escreveu: Fábio, obrigado pela compreensão... Euler e Fabio ou quem puder ajudar, é uma ferramenta q monitore locks, conexoes, processos etc... ferramenta visual. Não conheco nenhuma tanto do SGBD como do SO. Olá, O que já vi mais próximo disso é o Postgres Enterprise Manager, da EnterpriseDB (http://www.enterprisedb.com/products-services-training/products/postgres-enterprise-manager). Roda em algumas distribuições Linux, mas não no Debian. Marçal de Lima Hokama -- e-mail: mhok...@hotmail.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] Modelagem de banco
From: fernando.bina...@gmail.com Date: Thu, 8 Mar 2012 14:27:59 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] Modelagem de banco Boa tarde, Estou iniciando com postgres e gostaria de saber se o mesmo possui alguma ferramenta gratuita e de facil manuseio para modelagem de banco similar ao banco de dados MySql Workbench. Poderiam me indicar? Obrigado desde já. Olá Fernando, Se procurar no histórico da lista de discussão, verá que o assunto é recorrente e achará lá diversas sugestões de produtos emitidas pelos participantes da lista. Marçal Hokama -- e-mail: mhok...@hotmail.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] Referencias Mission Critical
From: flavio.gran...@gmail.com Date: Mon, 12 Dec 2011 18:21:20 -0200 To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Referencias Mission Critical Acredito que todos migraram para o Software Livre para reduzir custos ou pelo incentivo do governo para adocao de software livre, mas em empresas privadas, o receio ainda seja com relacao ao SUPORTE. Qual o incentivo do governo? Financeiro não é. A menos que eu esteja errado e o governo esteja dando isenção de IPI para o PostgreSQL, hehehehe... O governo incentiva os órgãos públicos na adoção do software livre por meio de documentos oficiais, como pode ser visto em http://www.softwarelivre.gov.br/ Marçal de Lima Hokama -- e-mail: mhok...@hotmail.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] restrição ao actualizar
Obrigado Marcal. Será que podes dizer-me o terceiro link que deves ter-te esquecido? Numa acção de actualização a constraint funciona? Podes dizer-me como aplico? Obrigado Olá Pedro, Já havia enviado o [3] num post anterior, mas segue abaixo: [2] http://www.depesz.com/index.php/2011/07/01/waiting-for-9-2-not-valid-checks/ [3] http://developer.postgresql.org/pgdocs/postgres/sql-altertable.html Em [3], bem como no [2] do post anterior, há a sintaxe como utilizar o NOT VALID. Segue um exemplo listado em [2]: ALTER TABLE test ADD CHECK ( field = 0 ) NOT VALID; A constraint vale para todas as operações de inserção e atualização posteriores ao comando. Atenciosamente, Marçal de Lima Hokama - ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] restrição ao actualizar
Olá pessoal, Podem ajudar no seguinte, eu tenho uma tabela espacial com varias colunas e quero implementar umas restrições ao preencher. No entanto, não posso implementar uma restrição normal porque os registos já estão lá, só quero é que, ao actualizar, o campo X só possa ser por exemplo entre 1 e 12. Se tentar uma restrição normal em que o campo X não pode ser Y nem sequer me deixa implementar porque os registos de lá estão todos a null, só vão ser actualizados depois. Olá Pedro, Se entendi a sua situação, você quer criar uma check constraint na sua tabela, que não faça a validação dos dados já existentes. No SGDB Oracle, seria a opção NOVALIDATE [1]. No PostgreSQL 9.2, pelo que vi em [2] e [3], há uma opção com finalidade semelhante: NOT VALID. [1] http://docs.oracle.com/cd/B28359_01/server.111/b28310/general005.htm [2] http://www.depesz.com/index.php/2011/07/01/waiting-for-9-2-not-valid-checks/ Atenciosamente, Marçal de Lima Hokama -- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] restrição ao actualizar
No PostgreSQL 9.2, pelo que vi em [2] e [3], há uma opção com finalidade semelhante: NOT VALID. Faltou o link do [3]? Segue abaixo: [3] http://developer.postgresql.org/pgdocs/postgres/sql-altertable.html Atenciosamente, Marçal de Lima Hokama-- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Script está demorando muito no PostgreSQL
Date: Wed, 16 Nov 2011 17:38:30 -0200 From: marl...@emater.mg.gov.br To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Script está demorando muito no PostgreSQL Eu rodo o firebird no computador hp, processador amd dual core 64 bits; 2,59 GHZ 1,75 MB ram com o xp O Postgresql está num Dell 64 bits 4 nucleos 2,5 GHz; 32 MB de ram com o Ubuntu 10.10 Marllos, sugiro a leitura desta parte do manual do PostgreSQL, que trata justamente sobre grande quantidade de INSERTS para popular um banco de dados: http://www.postgresql.org/docs/8.4/static/populate.html ainda, segue abaixo o link para uma página mostrando como montar os INSERTS para serem mais rápidos, caso não consiga usar o comando COPY: http://kaiv.wordpress.com/2007/07/19/faster-insert-for-multiple-rows/ Marçal de Lima Hokama -- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Apoio Técnico
From: bemanuel...@gmail.com Date: Mon, 14 Nov 2011 15:21:39 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] Apoio Técnico Pessoal, boa tarde, não sei se isso seria aqui na lista mas segue. Estou envolvido em um projeto, grande, que utiliza o Postgres. Pois bem, a algum tempo, inclusive comentei isso com o Flávio, um DBA Postgres - se havia algum lá, não sei dizer se contrataram alguém qualificado ou tinham na empresa - na Compesa ( Companhia de Águas e Esgotos do Pernambuco ) causou um problema desativando o recurso de Vacuum na base deles ( PG 8.3 - o sistema força a usar esse ). Pois bem, pelos problemas causados por essa falha, a Compesa mudou para Oracle ( por essa fala e outros motivos que não vem a ser técnicos ). Agora estão querendo e fazendo com que algumas companhias que usem esse sistema ( GSAN ) mudem para Oracle usando essa falha para vender o mesmo. Já expliquei o ocorrido e mostrei que nosso caso é bem diferente ( modéstia a parte ) mas a empresa que apresentações técnicas de vantagens do Postgres que batem ou sobressaem a do Oracle, tenho apoio inclusive do Supervisor da área, mas preciso gerar um documento para que ele apresente as vantagens de continuar com o Postgres. Não que eu não tenha conhecimento delas, mas tendo um embasamento e conhecimento que muitos da lista tem, a documentação fica até mais apresentável. Se alguém puder me ajudar com essa defesa agradeço. Já preparei uma listagem de empresas que utilizam o mesmo, segundo inclusive alguns panfletos que recebi no PGBR 2011. Obrigado. Bruno E. A. Silva. Pode começar apontando os custos de licenciamento que a empresa passará a ter com Oracle. Dependendo da arquitetura do teu hardware, os valores podem assustar. Outra coisa que pode ser indagada é sobre a questão de capacitação e atualização tecnológica da equipe para Oracle (se ninguém tiver experiência com ele). E ainda, se houver necessidade de migrar os sistemas atuais para passar a acessar o Oracle ao invés do PostgreSQL, isso deverá ter um custo também, e dependendo de como o sistema está construído, pode até ser necessário refazer todo o sistema. Atenciosamente, Marçal de Lima Hokama -- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] PGBR 2011 - Impressões
Bem, não sei se poderia colocar nesta lista de discussão algumas observações do evento na qual estou participando, mas de qualquer maneira aí vai: 1- Gostaria de parabenizar toda a organização do evento. As palestras/palestrantes estão sendo de excelente nível. O local do evento é muito bom, e ficou de bom tamanho o desconto dado na hospedagem. Para se ter uma idéia, a hospedagem do local onde costumo ficar em eventos em SP, o Formule1, tem diária de R$ 139,00, mas café da manhã (R$ 8,00) e Internet (R$ 12,00 por 24 horas) a parte. Pelo menos até o primeiro dia está excelente. 2- Talvez o único aspecto que poderia considerar negativo, mas nem tanto assim, seria o fato do elefante de pelúcia do evento ter vindo em pouca quantidade e ter se esgotado rapidamente. 3- Já tem alguma previsão de colocar no site o download das apresentações? Um abraço a todos e bom resto de evento, Marçal de Lima Hokama -- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] NoSQL (era: Configurando Timezones por databases)
Date: Sun, 16 Oct 2011 20:33:00 -0200 From: lean...@dutras.org To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] NoSQL (era: Configurando Timezones por databases) (...) E lembrei que uma vez um DBA Oracle comentava que não adiantava se ter um Oracle se você não utilizar os recursos do banco, no caso ele não se referia a Archive Logs ou outros, ele falava de Stored's e afins. Hm… imagino que queiras dizer programação procedural em PL/SQL. Na verdade, isso depõe contra o Oracle, que tem apenas uma linguagem proprietária para programar procedimentos armazenados, em vez de implementar o ISO SQL/PSM. No caso do PostgreSQL, além de termos uma versão do PL/SQL chamada PL/PgSQL, temos a ISO SQL/PSM e toda uma variedade de outras linguagens disponíveis. Só um detalhe com relação ao Oracle. Apesar de ser off-topic talvez seja de interesse. Em [1] explica como utilizar procedimentos externos no Oracle, desenvolvidos em outras linguagens de programação. E em [2] mostra como chamar Java Stored Procedures no Oracle. [1] http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_extern_proc.htm [2] http://download.oracle.com/docs/cd/B19306_01/java.102/b14187/chthree.htm E sobre a conformidade a ISO SQL/PSM, em [3] diz: Oracle Compliance with SQL/PSM:2003 Oracle's PL/SQL provides functionality equivalent to SQL/PSM:2003, with minor syntactic differences, such as the spelling or arrangement of keywords. [3] http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/ap_standard_sql006.htm Outra coisa que depõe contra o Oracle é que várias vezes se usam procedimentos armazenados e outras técnicas não declarativas, como /hints/ (dicas dadas pelo programador para forçar um caminho de execução) para contornar deficiências do SGBD. No PostgreSQL, procura-se aperfeiçoar o comportamento do planejador e incrementar o suporte à modelagem, ou seja, à programação declarativa. Ainda faltam muitas coisas para se aproximar do ideal relacional, e o SQL em si atrapalha ao violar o modelo, mas é uma abordagem muito mais sã. Sobre a questão dos hints acho que iniciar uma discussão sobre isso vai ser off-topic, mas já que foi deixada uma visão sobre isso, não vou comentar sobre ela. Só vou deixar a minha e não tocarei mais no assunto: no Oracle, é algo interessante se bem usado, só que tem vezes que usam isso para resolver problemas de SQLs mal escritos e bancos mal configurados, e acabam se tornando mais problema do que solução. Tem algumas discussões interessantes sobre hints no PostgreSQL, cujos links deixo abaixo: [4] http://it.toolbox.com/blogs/database-soup/why-postgresql-doesnt-have-query-hints-44121?rss=1 [5] http://thoughts.j-davis.com/2011/02/05/why-postgresql-already-has-query-hints/ [6] http://blog.2ndquadrant.it/mt/mt-search.cgi?tag=postgresql%20performance%20hintsIncludeBlogs=3 Atenciosamente, Marçal de Lima Hokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvidas com Right Outer Join
From: marc...@ig.com.br To: pgbr-geral@listas.postgresql.org.br Date: Thu, 13 Oct 2011 11:07:23 -0300 Subject: [pgbr-geral] Duvidas com Right Outer Join Pessoal mais uma vez preciso da vossa ajuda [Alegre] Tenho o seguinte select select distinct f.data_age, a.cod_key, a.cod_id, d.nome, d.end_abr, d.end_cad, d.end_num, d.end_com, d.end_bai, d.end_cid, d.end_est, end_cep, a.pedido, a.data_age, a.hora_age, a.hora_fim, a.codigo, b.descricao, c.qtd_item, e.obs_tecnico, a.tipo, a.agendamento, a.cod_ope, a.data_cad, a.obs, a.observacoes, a.obs_interna from mv_vendas_pre_agenda a inner join mv_produtos b on(b.codigo = a.codigo) inner join mv_vendas_pre_itens c on(c.cod_id = a.cod_id) and(c.pedido = a.pedido) and(c.codigo = a.codigo) and(c.obs not in('C')) left join mv_vendas e on(e.cod_id = a.cod_id) and(e.pedido = a.pedido) inner join mv_clientes d on(d.cod_id = a.cod_id) right join mv_vendas_pre_mes f on(f.data_age = a.data_age) where (a.obs not in('C')) and(b.tipo = 'M') and((a.data_age is null)or(a.data_age = '01/10/2011')) order by a.data_age, a.hora_age, a.cod_id Desculpe colocar o select todo, mas acho que fica melhor a compreensão A ideia é que a tabelas mv_vendas_pre_mes ( F ) tem registros que não tem na tabela ( A ) Mas preciso trazer essas datas justamente pra mostrar que não existem agendamentos naquele dia. Imagino que o Right Join deveria trazer todos os registros da tabela ( F ) mesmo não contendo a referncia, mas não é isso que ocorre. Não estou compreendendo esse Right Eu preciso que a tabela ( A ) seja a tabela principal do select Olá Marcelo, Como você não usou parênteses nos seus joins, a ordem de junção será da esquerda para direita (conforme [1]). Seguindo a ordem do seu select, as junções ficariam da seguinte forma: ((mv_vendas_pre_agenda+mv_produtos+mv_vendas_pre_itens-mv_vendas)+mv_clientes)-mv_vendas_pre_mes Neste caso, serão mostrados todos os registros da tabela mv_vendas_pre_mes(direita do right join), e quando tiver relacionamentos, mostrará o resultado dos outros joins, senão mostrará null. Aí a tabela principal fica sendo a F. [1]http://www.postgresql.org/docs/9.0/static/sql-select.html Atenciosamente, Marçal de Lima Hokamaattachment: wlEmoticon-smile[1].png___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Função Update or Insert
From: l...@dutras.org Date: Fri, 14 Oct 2011 14:25:13 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Função Update or Insert 2011/10/14 Charles Viana charles.vi...@gmail.com: Voce citou um bom exemplo, no caso de CEP cidade onde o cep pode repetir até 2 vezes ou mais. Exemplo: Rua Pio XII CentroMairiporãSP0760 Rua XV de NovembroCentroMairiporãSP0760 Mas aí é uma tabela de endereços, não de CEPs. Exato. Na tabela de CEPs cada CEP é único. O que não se pode confundir é a relação entre CEP e logradouro, onde um único CEP pode ser referenciado por mais de um logradouro (como mostrado acima), no caso de CEPs com sufixo 000 em algumas localidades (vide [1]). [1] http://www.correios.com.br/servicos/cep/cep_estrutura.cfm Atenciosamente, Marçal de Lima Hokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Função Update or Insert
Date: Fri, 14 Oct 2011 15:24:52 -0300 From: shan...@nucleo45.com.br To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Função Update or Insert O Cep não é uma entidade, nem chave natural de entidade alguma é apenas o atributo de um endereço. Primeiro, em cidades pequenas que tenham cep único, você não consegue dar um cep diferente para cada endereço, logo ele não identifica unicamente uma entidade endereço. Você também não pode usá-lo para ser chave natural de uma cidade, porque tem cidades que tem diversos ceps, analogamente não pode usar para estados, uma tabela de cep serve apenas como restrição se um cep é válido ou não e mesmo assim não serviria 100% já que um cep que é válido em um ano pode não ser válido no outro.. Uma tabela de cep's é apenas uma tabela cheia de dados em que o atributo cep é único e não se repete. Nada mais, um cep não pode ser usado como suficiente chave natural para identificar nada. O CEP como atributo de um endereço, tem um domínio, ou conjunto pré-definido de valores que é a relação de CEPs gerenciada pelos Correios, que tem uma estrutura definida em [1]. Se fosse modelar com base nessas informações, uma relação de CEPs poderia ser tanto um domínio como uma entidade (dúvida sobre ser realmente uma entidade - mas na prática iria virar uma tabela mesmo). Na prática, a teoria é outra coisa. Realmente. Trabalho aqui com o CD do Diretório Nacional de Endereços dos Correios, que tenho que importar periodicamente para a nossa base, e na prática essa suposta tabela de CEPs vira uma estrutura bem mais complexa... [1] http://www.correios.com.br/servicos/cep/cep_estrutura.cfm Atenciosamente, Marçal de Lima Hokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] NoSQL (era: Configurando Timezones por databases)
Date: Fri, 14 Oct 2011 15:39:12 -0300 From: shan...@nucleo45.com.br To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] NoSQL (era: Configurando Timezones por databases) Em 14-10-2011 14:23, Guimarães Faria Corcete DUTRA, Leandro escreveu: Não é verdade. O problema do Twitter foi com o MySQL, não com o modelo relacional. O MySql é muito usado hoje porque notadamente escala melhor em enormes quantidades de requisições. Ele consegue isto sendo apenas um repositório de dados com o myisan que é muito menos rigoroso com relação ao que o modelo relacional exige: restrição de tipos não é levada a sério, nada de foreign keys, transações, etc... O MySQL é o banco mais utilizado no mundo (e como foi comentado anteriormente, até a Google faz ele funcionar, hehehe), e mesmo após a compra da Oracle tem apresentado evoluções principalmente no storage engine InnoDB. Ele tem as suas virtudes. E se usasse PostGreSql? Como ele se comportaria com um pico de 1.6 bilhões de querys por dia? e picos de 18 mil tweets por segundo? Tente colocar um foreign key aí pra garantir integridade dos dados. Integridade para que? Se um twetter for perdido, lança-se outro e pronto. Sua confiança no Elefante e no modelo relacional é admirável, mas as vezes isso te cega. E o faz de tal forma que você não consegue perceber que toda a ferramenta foi feita para um propósito em mente e que o PostGreSql (eu gosto de caixa alta) não foi feito para resolver todos os problemas do mundo. Um último detalhe, os engenheiros do Twitter estão trabalhando em um novo sgdb NoSql [1] ainda mais leve que o Cassandra feito em Scala. Já está em produção inclusive e com uma performance incrível, e estou falando da performance que o twitter precisa, não a que você acha que ele precisa. Eu gostaria de ver o PostGreSql (sim, usei novamente a caixa propositalmente, eu gosto dela) escalando horizontalmente em centenas de servidores e servindo 100k leituras e 20k escritas por segundo. O que você tem de bom é conhecer bem o modelo relacional, o que tem de ruim é achar que ele é a solução para tudo, conhecer bem significa também saber suas limitações. [1] https://github.com/twitter/flockdb O PostgreSQL tem muitas qualidades e uma ampla gama de áreas de atuação, mas haverá situações em que teremos situações em que um determinadas funcionalidades serão sacrificadas em detrimento da performance ou outra característica em que outro banco de dados é superior. Depende muito de cada situação. Atenciosamente, Marçal de Lima Hokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Modelagem (era: Função Update or Insert)
Date: Fri, 14 Oct 2011 16:15:34 -0300 From: shan...@nucleo45.com.br To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Função Update or Insert Em 14-10-2011 15:53, Marcal Hokama escreveu: Uma tabela de cep's é apenas uma tabela cheia de dados em que o atributo cep é único e não se repete. Nada mais, um cep não pode ser usado como suficiente chave natural para identificar nada. O CEP como atributo de um endereço, tem um domínio, ou conjunto pré-definido de valores que é a relação de CEPs gerenciada pelos Correios, que tem uma estrutura definida em [1]. Se fosse modelar com base nessas informações, uma relação de CEPs poderia ser tanto um domínio como uma entidade (dúvida sobre ser realmente uma entidade - mas na prática iria virar uma tabela mesmo). Se os cep's não mudassem todo o ano eu até concordaria em dizer conjunto pré-definido, mas mudam. O que é um cep hoje, podem ser 2 amanhã, então nem adianta um on update cascade. Vejamos a situação, o atributo cep do endereço do cliente é uma foreign key para uma relação de ceps. No próximo ano os correios decidiram que este cep não existe mais, e agora? considerar cep como entidade te criaria um grande problema, porque derrepente, seu cliente passa a não ter mais cep ou a não ter um cep válido, ah, você tem uma restrição de integridade... então vá lá falar para os correios que eles não podem extinguir um cep. O que faremos?? Caso recente, a cidade em que eu nasci São Mateus-ES, tinha cep único 2993, já faz alguns anos que ele foi todo dividido porque a cidade cresceu, consulte o cep nos correios.. não existe mais. Mas até hoje, se você colocar o cep 2993 as encomendas chegam na casa dos meus pais certinho. No meu caso, a principal utilização do CEP, conforme foi comentado em outro post, é garantir o preenchimento do endereço de maneira correta a partir do preenchimento do CEP, como acontece em muitos sites/locais. Lembrei agora que, na verdade, o CEP é o meio para vincular por exemplo, um registro de um endereço a uma tabela geral de logradouros dos Correios. Aí é interesse pois cada logradouro tem um código único que não é o CEP. Quando o seu registro é vinculado diretamente ao logradouro, numa alteração de CEP no diretório dos correios, o logradouro passa a apontar para o novo CEP e assim o update cascadeou outro mecanismo semelhante de atualização é possível. Concordo sobre a parte que somente existência de uma única tabela de CEPs (no caso desta ser uma entidade) e a realidade de alterações promovidas pelos Correios poderiam inviabilizar a restrição de integridade, mas como escrevi anteriormente, o que é distribuído no Diretório Nacional de Endereços pelos Correios vai além dessa tabela, como a tabela de logradouros, permitindo efetuar melhores ações para manter a integridade e qualidade dos dados. Em [1] verifiquei uma relação das alterações promovidas pelos Correios no últimos anos. Mudanças acontecem, faz parte, da mesma maneira que muda a tabela de países, cidades, etc. Aí a questão seria manter a base de CEPs atualizada e endereçar as alterações. [1] http://www.correios.com.br/servicos/cep/alteracao_cep.cfm Atenciosamente, Marçal de Lima Hokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] NoSQL (era: Configurando Timezones por databases)
Date: Fri, 14 Oct 2011 17:16:09 -0300 From: fha...@gmail.com To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] NoSQL (era: Configurando Timezones por databases) Esta discussão ficou gostosa, entrando: (...) Você estava indo bem até citar PostGreSql. Não é uma questão de preferência sua. É um nome próprio, deve ser escrito como foi batizado, PostgreSQL ou Postgres. Ou você prefere ser chamado de MaRÇaL HoKaMa nos fórums? Flavio, olhe aí que não fui eu que escrevi PostGreSql. Se vai chamar atenção de alguém, chame da pessoa certa. Atenciosamente, Marçal de Lima Hokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Desculpem, mais uma vez sobre acentos (LATIN1)
From: marc...@ig.com.br To: pgbr-geral@listas.postgresql.org.br Date: Wed, 12 Oct 2011 16:52:03 -0300 Subject: Re: [pgbr-geral] Desculpem, mais uma vez sobre acentos (LATIN1) Bem, depois da ajuda dos amigos aqui da lista, vendo que ainda não há algo nativo no postgres, resolvi usar uma função para minhas pesquisas, assim resolvo meu problema por hora. Segue a função caso alguém precise CREATE OR REPLACE FUNCTION fsemacento(character varying) RETURNS character varying AS $BODY$ SELECT TRANSLATE(upper($1), 'áéíóúàèìòùãõâêîôôäëïöüçÁÉÍÓÚÀÈÌÒÙÃÕÂÊÎÔÛÄËÏÖÜÇ', 'aeiouaeiouaoaeiooaeioucAEIOUAEIOUAOAEIOOAEIOUC') $BODY$ LANGUAGE sql VOLATILE COST 100; ALTER FUNCTION fsemacento(character varying) OWNER TO postgres; Para usar faço o seguinte: (para buscar João, por exemplo) SELECT * FROM TABELA WHERE (fsemacento(nome) = fsemacento('joao')) Pode-se usar com Like e afins Além de ignorar os acentos ela também ignora maiusculas e minusculas ps: Pessoal, não sou expert no PG, por isso caso haja alguma coisa a melhorar nesta função, sou todo ouvidos! Olá Marcelo, Só uma observação na sua função: já que você colocou o UPPER($1) como o parâmetro de entrada do TRANSLATE, fica desnecessário colocar os caracteres minúsculos acentuados nas suas strings nos 2 parâmetros seguintes. Atenciosamente, Marçal de Lima Hokama e-mail: mhok...@hotmail.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] Curso de DBA... compensa?
Date: Tue, 11 Oct 2011 17:41:46 -0300 From: davidaug2...@gmail.com To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] Curso de DBA... compensa? Estou procurando por cursos de especialização do PostgreSQL e me deparei com esse: http://www.dextra.com.br/servicos/treinamento/pg/pgdba.htm , gostaria de opiniões com relação se este curso parece compensar o investimento, ou se devo procurar outro curso ou se alguém já fez... Fiz o curso com esta empresa em Brasília e recomendo. Muito bom. Marçal de Lima Hokama--e-mail: mhok...@hotmail.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] Netiqueta (Era: Atualizacao 9.1.0 para 9.1.1)
Date: Sun, 9 Oct 2011 23:13:31 -0300 From: eu...@timbira.com To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Netiqueta (Era: Atualizacao 9.1.0 para 9.1.1) On 08-10-2011 21:18, Tiago Adami wrote: Esta lista deve passar por um servidor, certo? Será que o moderador/administrador da lista não consegue bloquear o envio de mensagens em HTML no servidor? Ainda teríamos o problema de *bons hábitos* como remover partes de texto desnecessárias e escrever abaixo das outras mensagens, mas já seria um bom começo. É possível bloquear mensagens em HTML mas isso *não* é o caminho porque há muitos clientes que só mandam mensagens em HTML. Não vou discutir o mérito desta decisão mas particularmente acho que usuários que enviam emails para lista deveriam fazer um esforço para seguir as regras da lista. Bem, uma coisa é evitar, como está escrita na própria Netiqueta, e temos a questão de clientes que só mandam mensagens em HTML. Me parece que há uma corrente que quer tornar obrigatório o que deveria ser de preferência, como foi colocado há alguns posts atrás: Há alguns momentos em que não dá Se não dá para seguir a netiqueta, é melhor não escrever. Uma sugestão, para aqueles que queiram contribuir para a lista, mas não tenham condições de mandar mensagem texto, e se continuar a via preferencialmente mande mensagens sem HTML, seria que, a partir de agora, coloquem na mensagem Fui obrigado a mandar mensagem HTML por causa do meu cliente para que os outros leitores entendam o porquê do envio da mensagem naquele formato. Senão cada mensagem HTML que aparecer vai ser essa discussão novamente, e que pode nem ser por falta de conhecimento da pessoa sobre as regras do fórum. Marçal de Lima Hokama-- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Instalação do PostgreSQL 9 em Win7
Já tive algum problema desses com permissões, eu antes de instalar eu criei o usuario postgres, em seguida loguei com ele e criei os diretorios de destino do banco e instalacao na mao via prompt, no meu caso era em c: e d:, após isso instalei normalmente e tudo foi resolvido, só não lembro se instalei logado no postgres ou no meu usuário do windows Em 7 de outubro de 2011 10:45, (KSTROS) - Jayron Alberth Costa Castro jacas...@kstros.commailto:jacas...@kstros.com escreveu: Idemilson, Obrigado por sua atenção e em resposta digo que sim, ontem instalei no C:\ e sempre no final da instalação ele gera um erro onde informa que não conseguiu ler o arquivo postgresql.conf, na realidade o arquivo nçao existe na pasta data e era para existir lá, não sei pq não existe, o certo é que o processo de instalação cria o serviço e tudo, mas o serviço não sobe. Estou nessa briga a dois dias e nada. Jayron, Os dois links abaixo podem ajudar: http://www.devmedia.com.br/forum/postgresql/15863-PostgreSQL-Erro-na-Instalacao-no-W-7.htmlhttp://www.guj.com.br/java/230985-problema-ao-instalar-postgre-9-resolvido São posts de outros fórums com problema semelhante, mas que já encontraram solução. Atenciosamente, Marçal de Lima Hokama--e-mail: mhok...@hotmail.com attachment: ATT1___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] [ajuda] localização fisica do banco de dados no ubuntu
Date: Mon, 5 Sep 2011 08:09:51 -0300 From: rolemo...@gmail.com To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] [ajuda] localização fisica do banco de dados no ubuntu O pessoal não perde tempo em dar uma cutucada nos usuarios Jurassicos...rs melhor eu ficar quieto senão descobrem que eu perfurei cartão na faculdade...rs Jurassicos? Nossa... Só fazem 14 anos que usei o Access 97, parece que foi ontem, hehehe... Marçal Hokama -- e-mail: mhok...@hotmail.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] Duvida montagem SQL
Date: Wed, 7 Sep 2011 16:18:30 -0300 From: pedroalve...@gmail.com To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Duvida montagem SQL Testastes com AND EXISTS… AND… AND… ? Tentei mas mesmo assim, está trazendo os que não estão na seleção. Tenho os clentes (1,2) Cliente 1 tem os produtos (10,11,36,37) Cliente 2 tem os produtos (16,12,36,37) select distinct codigo_cliente from pvenda where EXISTS (select codigo_cliente from pvenda where produto = 10) and EXISTS (select codigo_cliente from pvenda where produto = 11) Eu quero os clientes que tem o produto (10 e 11) e neste resultado traz os 2 clientes. E assim não resolve? select codigo_cliente from pvenda where produto = 10 INTERSECT select codigo_cliente from pvenda where produto = 11 Atenciosamente, Marçal de Lima Hokama - e-mail: mhok...@hotmail.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] [ajuda] localização fisica do banco de dados no ubuntu
Date: Sun, 4 Sep 2011 16:17:46 -0300 From: lean...@dutras.org To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] [ajuda] localização fisica do banco de dados no ubuntu Le 2011.S.4 15h15, Flavio Henrique Araque Gurgel a écrit : - ponteiros para os bancos de dados backend (que podem ser vários diferentes, e nisso é completamente diferente do MS Acess); No meu tempo, também dava para fazer isso no MS Access… não o defendendo, nem com tanta certeza, mas tenho a lembrança de usar ‘tabelas externas’. Também sem a intenção de defender o MS Access, mas desde a versão 97 dele, que foi a que usei, podia-se conectar via ODBC a qualquer banco que tivesse esse driver... Oracle, MySQL, etc... Segue abaixo um exemplo de ligação entre Access e MySQL: http://dev.mysql.com/doc/refman/5.0/en/connector-odbc-examples-tools-with-access.html Marçal de Lima Hokama - e-mail: mhok...@hotmail.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] Operador varchar = int8 no postgreSQL 9
Date: Mon, 28 Feb 2011 14:02:05 -0400 From: ma...@tj.rr.gov.br To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Operador varchar = int8 no postgreSQL 9 Em 28-02-2011 13:09, Flavio Henrique Araque Gurgel escreveu: Olá a todos. Ha alguns anos, migrei um sistema legado do MS SQLServer para PostgreSQL. Esse sistema faz consultas do tipo: SELECT * FROM organizacional.funcionario WHERE matricula = 989676; onde matricula é um varchar. Até a versão 8.1 (que utilizávamos aqui até o mês passado) o SGBD aceitava comparações varchar = int, bem como int = varchar. Depois de atualizarmos para versão 9.0.2 esta consulta passou a dar erro: Error: ERRO: operador não existe: character varying = integer SQLState: 42883 Tentei contornar o problema criando os operadores: CREATE OPERATOR = (PROCEDURE = fn_int8eqvarchar, LEFTARG = int8 , RIGHTARG = varchar) CREATE OPERATOR = (PROCEDURE = fn_varchareqint8, LEFTARG = varchar , RIGHTARG = int8) Mas tive um efeito colateral inadmissível. Comparações varchar = varchar passaram a dar erro: Error: ERRO: sintaxe de entrada é inválida para integer: P SQLState: 22P02 Alguma sugestão? Conserte sua aplicação. Ela é que está errada, não o banco de dados. Isso já foi discutido aqui e nos fóruns internacionais. Os desenvolvedores avisaram sobre isso nos release notes. A conversão automática de tipos foi removida a partir do PostgreSQL 8.3, ou seja, já faz tempinho. []s Flavio Gurgel ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Não tenho essa opção, e se for a única, vou ter que apelar para um downgrade. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Não é possível a conversão da coluna organizacional.funcionario.matricula de varchar para integer? Pelo que pude perceber da sua consulta só tem valores numéricos neste campo. Um abraço, Marçal de Lima hokama--mhok...@hotmail.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] Uso de memória pelo postgres
From: iri...@senda.inf.br To: pgbr-geral@listas.postgresql.org.br Date: Fri, 25 Feb 2011 09:37:17 -0300 Subject: [pgbr-geral] Uso de memória pelo postgres Caros, tenho uma função que calcula as necessidades de matéria prima para produção fazendo da seguinte forma: -cria tabelas temporárias e insere apenas os registros necessários para o calculo. -cria índices para essas tabelas temporárias -efetua os cálculos -insere no banco o resultado. Acontece que quando executa essa função demora mais de 3 horas para concluir, muitas vezes tendo que reiniciar o banco. Depois dos cálculos gerados a inserção dos dados é rápida. O servidor(Linux) tem 3,2GB reservado de RAM para o banco. Porém pelo diagnostico que me foi passado pelo administrador da rede o postgres nunca utilizou mais que 0,9 GB. Que configurações do banco poderia olhar para que o postgres utilize mais memória? Será que seria isso ? O que poderia ser? Se alguém puder me dar uma luz ficarei imensamente agradecido. Atenciosamente, Irineu Raymundo Prezado Irineu, Tem como passar o volume de dados envolvidos nessas tabelas temporárias? Marçal de Lima Hokama--e-mail: mhok...@hotmail.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] Alterar tabela Aberta
From: marc...@ig.com.br To: pgbr-geral@listas.postgresql.org.br Date: Tue, 14 Dec 2010 15:22:20 -0200 Subject: [pgbr-geral] Alterar tabela Aberta Pessoal não vou fazer comparações aqui heim, é só pra saber se posso ou não posso. No MySQL eu posso alterar uma tabela mesmo que esteja sendo usada, é claro que não vou fazer alterações críticas como deletar uma coluna ou mudar o nome ou tipo de um campo, mas adicionar um campo. Por exemplo: ALTER TABLE vendas_recebe ADD COLUMN taxa_ban numeric(12,2) NOT NULL DEFAULT 0; Estou adicionando uma coluna que nao pode ser nula, mas com valor padrao dessa forma não pode dar erro. No MySQL não importa se estão usando o sistema. Na verdade, no MySQL a tabela que está sendo alterada ainda pode ser utilizada somente para leitura por outras sessões, e as escritas podem sofrer atraso, conforme [1]: in most cases, ALTER TABLE makes a temporary copy of the original table. MySQL incorporates the alteration into the copy, then deletes the original table and renames the new one. While ALTER TABLE is executing, the original table is readable by other sessions. Updates and writes to the table are stalled until the new table is ready, and then are automatically redirected to the new table without any failed updates. The temporary table is created in the database directory of the new table. This can differ from the database directory of the original table for ALTER TABLE operations that rename the table to a different database. Mas no Postgres percebi que ele congela o PgAdmin até que a tabela seja totalmente liberada... imagino que seja porque o PgAdmin precise de acesso exclusivo a tal tabela quando vai fazer alguma alteração. Pergunta: Existe como burlar isso? Ou seja quando eu tiver certeza de que minha alteração não causará problema eu force a alteração? A princípio não, conforme [2]: ALTER TABLE cannot safely be executed concurrently with other operations on the same table, so it obtains an exclusive lock on the table to enforce that. (...) ACCESS EXCLUSIVE - Conflicts with locks of all modes (ACCESS SHARE, ROW SHARE, ROW EXCLUSIVE, SHARE UPDATE EXCLUSIVE, SHARE, SHARE ROW EXCLUSIVE,EXCLUSIVE, and ACCESS EXCLUSIVE). This mode guarantees that the holder is the only transaction accessing the table in any way.Acquired by the ALTER TABLE, DROP TABLE, TRUNCATE, REINDEX, CLUSTER, and VACUUM FULL commands. This is also the default lock mode for LOCK TABLE statements that do not specify a mode explicitly. Tip: Only an ACCESS EXCLUSIVE lock blocks a SELECT (without FOR UPDATE/SHARE) statement. Marcelo Silva [1] http://dev.mysql.com/doc/refman/5.1/en/alter-table.html[2] http://www.postgresql.org/docs/current/static/explicit-locking.html Atenciosamente, Marçal de Lima Hokamae-mail: mhok...@hotmail.comhttp://www.twitter.com/mhokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: Indice composto
___ From: betol...@gmail.com Date: Tue, 16 Nov 2010 11:04:37 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] RES: Indice composto Mas assim: eu também vou buscar pelos campos descricao, data_inicio_agenda, data_fim_agenda além do titulo. Saco fora os indices? valeu Fiquei com uma dúvida, a sua busca vai ter na cláusula WHERE: 1) titulo E descricao E data_inicio_agenda E data_fim_agenda ou 2) combinações das colunas titulo, descricao, data_inicio_agenda, data_fim_agenda (às vezes algumas delas não aparecem). ??? Marçal de Lima Hokama e-mail: mhok...@hotmail.com http://twitter.com/mhokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: Indice composto
From: betol...@gmail.com Date: Tue, 16 Nov 2010 18:28:58 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] RES: Indice composto Então crie índices individuais para cada campo. Depois verifique se os seus índices estão sendo realmente utilizados. Ok obrigado, mas como posso verificar depois isso? Olá Beto, Analisando o plano de execução de cada consulta com o comando EXPLAIN Mais detalhes sobre o comando em http://www.postgresql.org/docs/9.0/interactive/using-explain.html Marçal de Lima Hokama - e-mail:mhok...@hotmail.com http://twitter.com/mhokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: Indice composto
___ From: betol...@gmail.com Date: Tue, 16 Nov 2010 14:10:24 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] RES: Indice composto Na clausula where vai ser um ou outro. ex: where titulo ilike '%valor%' ou data_inicio_agenda ilike '%valor%' Não vou unir os valores pra buscar depois, é um ou outro. A busca funciona conforme digita no campo, no evento keyup com ajax. Olá Beto, Agora que vi a tua consulta, vai ter um problema: o ilike com o texto de busca começando com '%'. Assim não vai usar índices. Mais em http://www.postgresql.org/docs/9.0/interactive/indexes-types.html Marçal de Lima Hokama - e-mail: mhok...@hotmail.com http://twitter.com/mhokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Que loco essa select, pegar data e hora do servidor
From: marc...@ig.com.br To: pgbr-geral@listas.postgresql.org.br Date: Wed, 10 Nov 2010 19:47:53 -0200 Subject: [pgbr-geral] Que loco essa select, pegar data e hora do servidor Pessoal, meu Postgres está biruta ? Estou usando a seguinte select para pegar a data e hora do servidor: select current_date as data_sys, current_time as hora_sys Acontece que ele está pegando a hora com uma hora de diferença a menos, por exemplo, quando é no relógio da minha máquina (windows) 19:43 ele pega 18:43 Não era pra o banco pegar a data e hora da bios ou do sistema operacional? Veja que estou falando da mesma máquina pois estou desenvolvendo localmente. Bem... como sou novo no postgres, vai a pergunta: Como pegar corretamente a data e hora do servidor, levando em conta o relogio do sistema e não do banco? Preciso pegar a hora pelo banco porque quero ter a hora do servidor e não da maquina local, eu faço isso na boa com mysql. obs: me parece que ele está acertando conforme o horario de verão... mas eu não pedi pra ele fazer isso, rsrsr, ele tem vida própria, rsrs Marcelo Silva msn: marc...@ig.com.br Prezado Marcelo, Esse assunto já foi tratado em [1], mas complemento com algumas informações abaixo. Como pode ser visto em [2] a função current_time retorna um tipo time with time zone. Isso Quer dizer, conforme [3]: Quando um valor de timestamp with time zone é enviado para a saída, é sempre convertido de UTC para a zona horária corrente de 'timezone', e mostrado como hora local desta zona. Para ver a hora em outra zona horária, ou se muda 'timezone' ou se usa a construção AT TIME ZONE (consulte a Seção 9.9.3). O parâmetro de sistema timezone define qual é a zona horária utilizada pelo PostgreSQL. Sua definição em [4]: timezone (string) --- Define a zona horária para exibir e interpretar os carimbos do tempo. O valor padrão é 'unknown', o que significa utilizar o que estiver especificado no ambiente do sistema operacional para zona horária. Para obter informações adicionais deve ser consultada a Seção 8.5 Em [5] está a documentação sobre o parâmetro para a versão 8.4. A string deste parâmetro é o nome da zona horária, baseada na view pg_timezone_names Então na view pg_timezone_names(ver [7]) você verá as zonas que podem ser utilizadas em timezone. [1]http://www.mail-archive.com/pgbr-geral@listas.postgresql.org.br/msg19770.html [2]http://www.postgresql.org/docs/8.4/interactive/functions-datetime.html [3]http://pgdocptbr.sourceforge.net/pg80/datatype-datetime.html [4]http://pgdocptbr.sourceforge.net/pg80/runtime-config.html#GUC-TIMEZONE [5]http://www.postgresql.org/docs/8.4/interactive/runtime-config-client.html#GUC-TIMEZONE [6]http://www.postgresql.org/docs/8.4/interactive/datatype-datetime.html#DATATYPE-TIMEZONES [7]http://www.postgresql.org/docs/8.4/interactive/view-pg-timezone-names.html Marçal de Lima Hokama - e-mail: mhok...@hotmail.com http://www.twitter.com/mhokama ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Trilha de PostgreSQL na Latinoware 2010
Date: Tue, 9 Nov 2010 23:46:28 -0200 From: lhce...@gmail.com To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] Trilha de PostgreSQL na Latinoware 2010 Srs, É com muita satisfação que anuncio a trilha de palestras sobre PostgreSQL no dia 11 de novembro[1] na latinoware[2]. Será uma ótima oportunidade de trocar experiências e rever velhos amigos. 1) http://latinoware.org/sites/all/files/files/grade%20latinoware%20ULTIMVA%20VERSAO.pdf 2) www.latinoware.org Forte abraço e nos vemos por aqui!!! -Leo Se tivesse visto essas palestras sobre MySQL e PostgreSQL eu tinha pedido para ir pelo trabalho... E ainda por cima deixei esse evento de lado pois tinha me programado para ir ao PGBR... Marçal de Lima Hokama http://www.twitter.com/mhokama e-mail: mhok...@hotmail.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] Busca semântica
From: eduard...@embrasis.com.br To: pgbr-geral@listas.postgresql.org.br Date: Tue, 2 Nov 2010 01:20:04 -0200 Subject: [pgbr-geral] Busca semântica Oi pessoal. Existe alguma forma de fazer uma busca semântica no pg? Tipo: busco luís, mostra luis e luiz []´s Eduardo Az Dep.TI EMBRASIS +55(11)2122-0241 PABX +55(11)8125-3845 TIM +55(11)9826-0138 VIVO eduard...@embrasis.com.br Olá Eduardo, Talvez este link possa ajudar: http://developer.postgresql.org/pgdocs/postgres/textsearch-intro.html Atenciosamente, Marçal de Lima Hokama -- e-mail: mhok...@hotmail.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] Off-Topic: Linux Fedora ou Ubuntu Server
Prezado Julio, Se for por uma questão de suporte técnico da Dell, tem que tomar cuidado. Se não estiver claramente escrito o suporte ao Fedora, é possível depois que não atendam chamados alegando que Fedora não é Red Hat. Atenciosamente, Marçal de Lima Hokama -- From: jmtof...@setadigital.com.br To: pgbr-geral@listas.postgresql.org.br Date: Mon, 27 Sep 2010 09:24:15 -0300 Subject: [pgbr-geral] Off-Topic: Linux Fedora ou Ubuntu Server Bom dia pessoal. Desculpem o off-topic, porem estou numa encruzilhada e gostaria de segundas, terceiras e quartas opiniões hehehe. Sempre utilizei Debian e ultimamente Ubuntu Server nos meus servidores de banco e ele sempre me atendeu a contento, porem a diretoria da empresa esta analisando a troca do SO para o Fedora, devido a um problema com servidores DELL, que segundo eles, somente “homologam” SUSE e Red Hat para servidores. Gostaria da opinião de vocês quanto ao Fedora, prós e contras dessa distribuição. Um abraço Julio Tofoli SetaDigital Sistemas ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: Melhorando o desempenho do PostGre
From: mar...@npsistemas.com.br To: pgbr-geral@listas.postgresql.org.br Date: Tue, 4 May 2010 19:01:55 -0300 Subject: [pgbr-geral] RES: Melhorando o desempenho do PostGre Utilizamos o Postgres na empresa há dois anos, em um sistema completo (ERP). Acontece que de uns tempo pra cá o sistema se tornou muito lento. As consultas ficaram lentas. O cadastro de notas fiscais que antes era bem rápido, agora se tornou muito lento nas pesquisas e nas inclusões. Eliminamos todos os problemas de redes e infraestrutura, chegando a conclusão que se trata do banco de dados. O DBA comentou que a solução seria a separação dos índices do banco de dados. Assim, teríamos dois discos, um com os índices e outro com o banco de dados. Esse procedimento é complexo, visto que terei que desmontar um RAID 5 e refazê-lo e não tenho certeza que isso dará um desempenho maior no sistema. Gostaria de saber se alguém já utiliza essa solução de índices separados e se realmente vale arriscar todo arranjo já feito para se montar algo assim. Será que com a separação terei mais desempenho?? Marcio - TI Olá Marcio, Não sei com quantos discos físicos você está montando seu RAID 5, mas geralmente essa questão de separação de índices e dados é útil quando você tem os dois no mesmo disco físico, e o hardware não consegue dar conta do grande número de requisições ao dispositivo, gerando conteção e perda de performance. No caso do RAID 5, como pode perceber em http://pt.wikipedia.org/wiki/RAID#RAID_5, os dados são distribuídos entre os discos físicos, minimizando a questão da contenção em um único disco físico (mas depende também de quantos discos físicos formam o seu volume). Talvez o problema possa ser justamente no RAID 5, que dependendo do hardware envolvido, pode não ser arranjo mais adequado para bancos de dados. Abaixo segue um documento da Dell comparando o desempenho do RAID 5 X RAID 10 com Oracle em diversas situações, mas acredito que possa servir também para PostgreSQL: http://www.dell.com/downloads/global/solutions/tradeoffs_RAID5_RAID10.pdf?c=myl=ens=k12 Outra idéia pode ser verificar qual é a tecnologia dos seus discos físicos (SATA, SAS, Fibre Channel, etc.) e dependendo da situação, pensar num upgrade. Marçal de Lima Hokama -- e-mail: mhok...@hotmail.com _ CANSADO DE ENTRAR EM TODAS AS SUAS DIFERENTES CONTAS DE EMAIL? JUNTE TODAS AGORA. http://www.windowslive.com.br/public/product.aspx/view/1?cname=agregadorocid=Hotmail:MSN:Messenger:Tagline:1x1:agregador:- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] OFF TOPIC - Crescimento faz Twitter trocar o MySQL
Aproveito para deixar este post sobre o assunto: http://openquery.com/blog/sql-nosql Marçal --- Date: Thu, 25 Feb 2010 16:23:19 -0300 From: osvaldo.kuss...@gmail.com To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] OFF TOPIC - Crescimento faz Twitter trocar o MySQL Em 25 de fevereiro de 2010 16:17, Prof. Benedito A. Cruz b...@cria.org.br escreveu: Pessoal, Alguma referência bacana sobre esses NoSQL? Comece por: http://nosql-databases.org/ http://pt.wikipedia.org/wiki/NoSQL Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral _ Quer deixar seus vídeos mais divertidos? Com o Movie Maker isso fica fácil. http://www.windowslive.com.br/public/tip.aspx/view/87?product=4ocid=Windows Live:Dicas - Movie Maker:Hotmail:Tagline:1x1:Titulo Legendas Creditos___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Microsiga Prrotheus 10 - Stored Procedure
From: moroinformat...@gmail.com To: pgbr-geral@listas.postgresql.org.br Date: Fri, 22 Jan 2010 08:47:46 -0200 Subject: [pgbr-geral] Microsiga Prrotheus 10 - Stored Procedure Bom dia pessoal tudo bem? (...) Como surgiu essa idéia, também surgiu a idéia de se fazer um curso de PostgreSQL aqui em Campinas-SP (moro em Valinhos-SP) na Dextra, alguém conhece essa escola? É boa? Vale a pena fazer esse curso de PostgreSQL? (...) Olá André, Fiz em novembro/dezembro os cursos da Dextra aqui em Brasília e gostei muito. O instrutor domina os assuntos e o material é muito bom. Marçal de Lima Hokama -- _ O Novo Windows 7 funciona do jeito que você quer. Clique aqui para conhecer! http://www.microsoft.com/brasil/windows7/default.html?WT.mc_id=1539 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Documentação automática (ou q uase) de bando de dados PostgreSQL
From: welrbr...@gmail.com Date: Wed, 20 Jan 2010 17:40:11 -0200 To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] Documentação automática (ou quase) de bando de dados PostgreSQL Salve todos, Estou precisando documentar um bando de dados em PostgreSQL com centenas de tabelas e que ninguém sabe quem liga a quem e nem há documentação de campos nem nada. Será um trabalho hercúleo e que gostaria de automatizar um pouco pra adiantar. Alguém sabe um programa - preferivelmente para Linux - que consiga me gerar de forma automática um diagrama ER, UML ou algo do gênero? Se souberem algum que possa fazer o mesmo com bases MySQL será muito bem-vindo também Respondendo ao Off-Topic: Para fazer reversa de bases MySQL tem o MySQL Workbench: http://dev.mysql.com/downloads/workbench/5.2.html Marçal de Lima Hokama -- _ Sabia que você tem 25Gb de armazenamento grátis na web? Conheça o Skydrive agora. http://www.windowslive.com.br/public/product.aspx/view/5?ocid=CRM-WindowsLive:produtoSkyDrive:Tagline:WLCRM:On:WL:pt-BR:SkyDrive ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Índices e otimização
Olá, O tempo para as 2 consultas foi 12 ms na verdade. Com os recursos atuais de computação, para você poder ver a olho nu uma consulta com índices ser mais rápida que uma consulta full table scan, só com consultas complexas ou tabelas com milhões de registros. Marçal de Lima Hokama - Date: Sat, 2 Jan 2010 14:51:32 -0800 From: moisesps...@gmail.com To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Índices e otimização JotaComm wrote: Qual a versão do seu PostgreSQL? Postgres Studio Advanced Server 8.3R2 JotaComm wrote: Você pode colocar aqui a definição da tabela? CREATE TABLE public.tb2 ( idtb2 BIGSERIAL, idtb1 BIGINT NOT NULL, sobre VARCHAR(20), CONSTRAINT tb2_pkey PRIMARY KEY(idtb2) ); CREATE INDEX tb2_idx ON public.tb2 USING btree (idtb1); CREATE TABLE public.tb1 ( idtb1 BIGSERIAL, nome VARCHAR(20), CONSTRAINT tb1_pkey PRIMARY KEY(idtb1) ); JotaComm wrote: Veja o meu exemplo: Criação da tabela. postgres=# CREATE TABLE tab1(codigo INTEGER); CREATE TABLE Inserção de registros. postgres=# INSERT INTO tab1 VALUES (generate_series(1,60)); INSERT 0 60 postgres=# SELECT count(*) FROM tab1; count 60 (1 row) postgres=# SELECT * FROM tab1 WHERE codigo=500; codigo 500 (1 row) Time: 71,537 ms --Tempo da execução da consulta. postgres=# postgres=# EXPLAIN SELECT * FROM tab1 WHERE codigo=500; QUERY PLAN Seq Scan on tab1 (cost=0.00..10155.00 rows=1 width=4) Filter: (codigo = 500) (2 rows) Time: 0,643 ms --Tempo da execução do comando EXPLAIN. Adição de uma PK. Ao fazer isso automaticamente um índice será criado. postgres=# ALTER TABLE tab1 ADD PRIMARY KEY(codigo); NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index tab1_pkey for table tab1 ALTER TABLE postgres=# postgres=# SELECT * FROM tab1 WHERE codigo=500; codigo 500 (1 row) Time: 0,851 ms --Tempo da execução da consulta. postgres=# EXPLAIN SELECT * FROM tab1 WHERE codigo=500; QUERY PLAN -- Index Scan using tab1_pkey on tab1 (cost=0.00..8.33 rows=1 width=4) Index Cond: (codigo = 500) (2 rows) Time: 1,391 ms --Tempo da execução do comando EXPLAIN. Faça este teste e se o resultado for diferente do apresentado aqui, poste o seu resultado. Recriei as tabelas e inserir novos registros: -- registros de tb1 INSERT INTO tb1 (nome) VALUES ('nome_' || generate_series(1,60)); -- registros de tb2 com idtb1 = 2 INSERT INTO tb2 (idtb1, sobre) VALUES (2, 'sobre_' || generate_series(1,60)); -- registros de tb2 com idtb1 = 50 INSERT INTO tb2 (idtb1, sobre) VALUES (50, 'sobre_' || generate_series(1,60)); -- contar registros de tb1 SELECT count(idtb1) FROM tb1; count(idtb1) -- 60 (1 row) -- contar registros de tb2 SELECT count(idtb2) FROM tb2; count(idtb1) -- 120 (1 row) Executei o VACUM do PGAdmin nas duas tabelas: TB1: INFO: vacuuming public.tb1INFO: tb1: found 0 removable, 60 nonremovable row versions in 3822 pages DETAIL: 0 dead row versions cannot be removed yet. Nonremovable row versions range from 39 to 44 bytes long. There were 0 unused item pointers. Total free space (including removable row versions) is 1 bytes. 0 pages are or will become empty, including 0 at the end of the table. 1 pages containing 3592 free bytes are potential move destinations. CPU 0.09s/0.18u sec elapsed 1.58 sec. INFO: index tb1_pkey now contains 60 row versions in 1648 pages DETAIL: 0 index pages have been deleted, 0 are currently reusable. CPU 0.00s/0.00u sec elapsed 0.00 sec. INFO: tb1: moved 0 row versions, truncated 3822 to 3822 pages DETAIL: CPU 0.00s/0.00u sec elapsed 0.00 sec. INFO: analyzing public.tb1INFO: tb1: scanned 3000 of 3822 pages, containing 470946 live rows and 0 dead rows; 3000 rows in sample, 599985 estimated total rowsTempo total de execução da consulta: 1704 ms. TB2: INFO: vacuuming public.tb2INFO: tb2: found 0 removable, 120 nonremovable row versions in 8824 pages DETAIL: 0 dead row versions cannot be removed yet. Nonremovable row versions range from 48 to 53 bytes long. There were 0 unused item pointers. Total free space (including removable row versions) is 74576 bytes. 0 pages are or will become empty, including 0 at the end of the table. 1 pages containing 3968 free bytes are potential move destinations. CPU 0.23s/0.59u sec elapsed 3.25 sec.INFO: index tb2_pkey now contains 120 row versions in 3293 pages DETAIL: 0 index pages have been deleted, 0 are currently reusable. CPU 0.00s/0.00u sec elapsed 0.00 sec.INFO: index tb2_idx now contains 120 row versions in 4172 pages DETAIL: 0 index pages have been deleted, 0 are currently reusable. CPU 0.01s/0.00u sec
Re: [pgbr-geral] Qual estrutura utilizar?
From: leandro.gfc.du...@gmail.com Date: Wed, 30 Dec 2009 07:40:50 -0200 To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Qual estrutura utilizar? 2009/12/29 Marcal Hokama : haverá uma demanda de processamento (envolvendo CPU, memória e E/S), até por outra informação dada: porém quando inicia a execução das classificações o desempenho do servidor cai drasticamente. Há muitos fatores a considerar, ainda… os algoritmos são eficientes? O momento dos cálculos é conveniente? Que outras formas de os fazer haveria? Qual o gargalo, E/S ou processador? E vai por aí afora. Ok, ok... Vou voltar no tempo para tentar ajudar na dúvida original do Eder Sousa: Tenho um sistema de Distribuição onde 99% das atividades é inclusão de registros que por sua vez está incluido em um database, surgiu a necessidade de implantar um novo database onde será efetuado a carga de dados diárias com aproximadamente 50.000 registros dias, porém neste database será classificado N calculo para administrar o estoque de 55 filiais. Até a carga de dados funciona maravilhosamente, porém quando inicia a execução das classificações o desempenho do servidor cai drasticamente. Pergunto: Neste caso é necessário um novo servidor para executar os cálculos, ao invés de efetuar no mesmo servidor?? Só para conhecimento o servidor é um Quadcore com 8GB RAM e 1 Tera de HD []s Eder, eu diria que seria interessante neste caso saber algumas coisas: 1- O que você chama de classificações, o que faz exatamente? 2- De quanto em quanto tempo esta operação é executada? 3- Os dados gerados por estas classificações são armazenados em algum lugar? é bem provável que o modelo atual (transacional) nao atenderá a essa necessidade de emissão de relatórios em tempo real, sendo necessária a criação de novas estruturas para atender a essa finalidade. Uma coisa não exclui a outra. Novas estruturas não significam que o modelo atual não atende; é tudo questão de modelo físico e circunstâncias. Leandro, se eu tenho meu modelo de dados, e uma necessidade de uma determinada consulta que, utilizando as estruturas atuais, já foi otimizada ao máximo e o tempo decorrido não atende a necessidade do cliente, como vou dizer que esse modelo atual, sem ter nenhuma modificação, atende a minha necessidade? Marçal de Lima Hokama -- _ Faça transações bancárias de maneira segura. Baixe agora o Novo Internet Explorer 8. http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmailutm_medium=Taglineutm_content=Tag2utm_campaign=IE8 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Res: Uso de Campos Padrões
Para facilitar o entendimento da diferença entre PK e UK, geralmente falamos A PK é uma UK com NOT NULL, e sobre o assunto achei o seguinte link: http://en.wikipedia.org/wiki/Unique_key Mas conceitualmente, se uma UK aceita valores nulos, nem poderíamos considerá-la como chave candidata, não? Marçal de Lima Hokama - Date: Wed, 30 Dec 2009 14:18:52 -0800 From: marciomouracas...@yahoo.com.br To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] Res: Uso de Campos Padrões Colega; mas podemos ter várias UK´s em uma tabela, e a PK é somente UMA, correto? E neste caso, o conceito é diferente! De: Leandro DUTRA Para: Comunidade PostgreSQL Brasileira Enviadas: Quarta-feira, 30 de Dezembro de 2009 19:20:13 Assunto: Re: [pgbr-geral] Uso de Campos Padrões 2009/12/30 Wolak Sistemas - Fabiano Machado Dias : Nesse exemplo você confundiu PK com UK. Mas vamos deixar pra lá! Confundi não… não que fosse fazer diferença, conceitualmente são a mesma coisa. A diferença foi um excesso de cautela do Codd que o Date só corrigiu alguns anos depois, e o SQL agravou por causa dos NULLs. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3854 7191 gTalk: xmpp:leand...@jabber.org +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT-3 MSN: msnim:chat?contact=lean...@dutra.fastmail.fm Sent from Sao Paulo, SP, Brazil ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes _ Navegue com segurança com o Novo Internet Explorer 8. Baixe agora, é gratis! http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmailutm_medium=Taglineutm_content=Tag4utm_campaign=IE8 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Qual estrutura utilizar?
Opa, To: pgbr-geral@listas.postgresql.org.br Date: Tue, 29 Dec 2009 14:09:49 -0200 From: lis...@softpira.com Subject: Re: [pgbr-geral] Qual estrutura utilizar? Graaande JP tudo bem??? Vamos por partes... Um novo database para mim: 1.) O mesmo servidor possuindo dois BANCO DE DADOS: EXEMPLO: CREATE DATABASE producao WITH OWNER = postgres ENCODING = 'UTF8' CONNECTION LIMIT = -1; ALTER DATABASE producao SET work_mem=100MB; CREATE DATABASE producao2 WITH OWNER = postgres ENCODING = 'UTF8' CONNECTION LIMIT = -1; ALTER DATABASE producao SET work_mem=100MB; 2.) Sim a carga de 50.000 registros será em massa (no caso acima será no producao2) porém no producao está a todo o momento incluindo informações, em torno de 7.000 registros que neste caso não estarei usando em cálculos. 3.) A Classificação que mencionei, são cálculos de vendas nos últimos 3 meses (aproximadamente 4.500.000 registros), 30 dias (aproximadamente 1.500.000 registros), 13800 produtos, das 55 filiais (solicitação de amigos consultores..r). Pelo que foi mencionado no item 3, com o volume de dados envolvido, não há dúvidas de que vai ser necessário um modelo diferenciado do modelo transacional atual para armazenar os dados consolidados. O que vai impactar aqui é a periodicidade em que esses dados consolidados devem ser atualizados (por exemplo: mensal, diário ou tempo real), pois aí as rotinas de consolidação deverão ser executadas mais vezes e aí vai o poder de processamento. Se houver uma expectativa de aumento de demanda de dados consolidados, pode ser interessante partir para um datamart e para um modelo dimensional. Marçal de Lima Hokama - _ Faça transações bancárias de maneira segura. Baixe agora o Novo Internet Explorer 8. http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmailutm_medium=Taglineutm_content=Tag2utm_campaign=IE8 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Qual estrutura utilizar?
From: leandro.gfc.du...@gmail.com Date: Tue, 29 Dec 2009 17:24:55 -0200 To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Qual estrutura utilizar? 2009/12/29 Marcal Hokama : com o volume de dados envolvido, não há dúvidas de que vai ser necessário um modelo diferenciado do modelo transacional Não necessariamente… não sabemos o suficiente sobre complexidade dos cálculos, como serão executados, como serão consultados os resultados… se esses volumes serão gerados ou apenas usados… se o gargalo é processamento ou E/S (geralmente é E/S)… Concordo, mas pelo que foi informado: A Classificação que mencionei, são cálculos de vendas nos últimos 3 meses (aproximadamente 4.500.000 registros), 30 dias (aproximadamente1.500.000 registros), 13800 produtos, das 55 filiais (solicitação deamigos consultores..r). Já pode se perceber que relatórios tipo vendas x produto, vendas x filial, vendas x produto x filial, com as quantidades envolvidas, haverá uma demanda de processamento (envolvendo CPU, memória e E/S), até por outra informação dada: porém quando inicia a execução das classificações o desempenho do servidor cai drasticamente. Outra coisa, muito que geralmente se considera como ‘modelo diferenciado do transacional’ pode ser implantado com extensões deste último, como visões materializadas, gatilhos c. Uma solução pode ser a armazenagem dos dados consolidados para tornar mais rápida a emissão de relatórios. Pode ser tanto tabelas ou views materializadas modeladas de acordo com a necessidade e do relatório a ser emitido. Para a alimentação destas estruturas podem ser utilizadas rotinas em lote ou triggers. São detalhes de implementação, mas o importante é que é bem provável que o modelo atual (transacional) nao atenderá a essa necessidade de emissão de relatórios em tempo real, sendo necessária a criação de novas estruturas para atender a essa finalidade. Mas a sua implementação vai depender, basicamente, da periodicidade em que as rotinas de consolidação serão executadas. Datamart e modelo dimensional (como, aliás, prefixos de nomes de objetos, chaves artificiais, desnormalização c) amiúde são as respostas certas para as questões erradas — ou respostas em buscas de questões. Tudo depende do contexto em que vai ser aplicado. Existem soluções que não são adequadas para determinados casos e para outros são. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3854 7191 gTalk: xmpp:leand...@jabber.org +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT-3 MSN: msnim:chat?contact=lean...@dutra.fastmail.fm Sent from Sao Paulo, SP, Brazil ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Marçal de Lima Hokama - _ Fique protegido de ameças utilizando o Novo Internet Explorer 8. Baixe já, é grátis! http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmailutm_medium=Taglineutm_content=Tag1utm_campaign=IE8 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ferramenta para modelagem
From: alde...@gmail.com Date: Wed, 16 Dec 2009 20:41:05 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Ferramenta para modelagem Senhores(as), Deixe-me usar a thread para outras questões que despertam meu interesse como AD e preciso de uma ferramenta que me ajude (automatize) na gestão dos dados corporativos. Portanto, quanto a ferramenta case para modelagem de dados: - Serve pra grandes corporações fazerem a adm. de dados? - Faz comparativo e gera os scripts de mudança? - Tem gerador de Dicionário de Dados e repositório de modelos? - Permite fazer gestão de objetos de banco e reuso de tabelas quiça colunas? - É possivel definir padrão de nomenclatura personalizado? - E por ultimo, mas não menos importante, aborda diferentes SGBDs? Hoje, a que cobre alguns desses requisitos é a ERWin, sem lobby ok, e estou avaliando outras, preciso inclusive que me ajude em outras questões, aceito sugestões. Onde eu trabalho temos necessidades semelhantes, além de ter que gerar modelos para Oracle, PostgreSQL e MySQL, e não tínhamos muitos recursos para comprar um PowerDesigner ou ERWin, por exemplo. Fazendo uma análise de diversas ferramentas, compramos o Toad Data Modeller, da Quest (http://www.quest.com/Toad-Data-Modeler/). Sugiro fazer o download da versão Trial e verificar se atende suas necessidades. Marçal de Lima Hokama - _ Windows 7: agora com conexões automáticas de rede. Conheça. http://www.microsoft.com/brasil/windows7/default.html?WT.mc_id=1539 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Ferramenta para modelagem
From: alde...@gmail.com Date: Thu, 17 Dec 2009 08:04:22 -0300 To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] Ferramenta para modelagem Marçal, Realmente essa ferramenta é boa (uma derivação do Case Studio 2), ela está na minha lista de avaliação, mas quem é o fornecedor local? Não podemos adiquirir ferramentas sem suporte local e cujo pagamento tenha que ser em outra moeda. Coisa de governo... Aldemir, No site http://www.quest.com/partners/search-partners.aspx você irá encontrar representantes da Quest no Brasil que revendem o produto e oferecem suporte. Aqui em Brasília, nós adquirimos com a empresa Formato, via adesão a registro de preços. Atenciosamente, Marçal de Lima Hokama - _ Com o Internet Explorer 8 você tem seu contéudo favorito em poucos cliques. Conheça! http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmailutm_medium=Taglineutm_content=Tag5utm_campaign=IE8 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Trigger parou de funcionar
Date: Wed, 16 Dec 2009 16:16:18 -0200 From: rdme...@gmail.com To: pgbr-geral@listas.postgresql.org.br Subject: [pgbr-geral] Trigger parou de funcionar Olá a todos, Misteriosamente uma trigger do meu banco parou de funcionar. Isso ocorreu em 3 máquinas, acho que simultaneamente. Tive que dropar (portanto, imagino que, a trigger ainda estava lá) e criar a trigger novamente: DROP TRIGGER INSERIRPRODUTODEMANDA ON DEMANDA_PRODUTO;CREATE TRIGGER inserirProdutoDemanda AFTER INSERT ON demanda_produto FOR EACH ROWEXECUTE PROCEDURE inserirProdutosDemanda_Periodo_Produto(); E então a trigger voltou a funcionar perfeitamente... Alguem sabe o que pode ter causado isso? E outra pergunta, como eu listo as trigger existentes no meu banco? Atenciosamente, Rogério Dias Megna Olá, Use pg_trigger http://www.postgresql.org/docs/8.4/static/catalog-pg-trigger.html Marçal de Lima Hokama - _ Com o Internet Explorer 8 você tem seu contéudo favorito em poucos cliques. Conheça! http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmailutm_medium=Taglineutm_content=Tag5utm_campaign=IE8 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] SQL busca ips
Date: Mon, 14 Dec 2009 05:25:01 -0800 From: jackson...@hotmail.com To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] SQL busca ips Leonardo Cezar wrote: 2009/12/14 JacksonWeber jackson...@hotmail.com: Pessoal, Alguém sabe uma forma ou um SQL para buscar todos os ips das estações conectados a um banco de dados. Buscar o pid e o username já sei, existe como do pid converter o ip ou não existe uma forma de capturar o ip. SELECT client_addr FROM pg_stat_activity; informou não existir essa coluna, será por motivo de versão: 8.0.6 -Leo -- Talvez essa página ajude: http://www.question-defense.com/2008/11/12/postgres-table-pg_stat_activity-table-fields-explained Marçal de Lima Hokama -- _ Fique protegido de ameças utilizando o Novo Internet Explorer 8. Baixe já, é grátis! http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmailutm_medium=Taglineutm_content=Tag1utm_campaign=IE8___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Como fazer um sistema de auditoria para DELETE's?
2009/12/12 Andre Lopes lopes80an...@gmail.com Desde já obrigado a ambos, pois deram-me duas ideias. Realmente não sei muito bem o que adoptar, por agora. Já tenho a base de dados terminada e não meapetecia mexer muito mais nela, em relação á auditoria tenho os 3 campos que referi em todas astabelas. Com a solução da tabela única fica tudo centralizado, tem o senão de ser mais difícil fazer SELECT'sao campo DADOS, com a solução de espelhar todas as tabelas é mais fácil fazer SELECT's, mas vai-medar mais um dia de trabalho espelhar todas as tabelas... Vou pensar neste assunto seriamente enquanto durmo... Mais uma vez obrigado. Cumprimentos, Com a auditoria baseada em triggers, não é necessário mexer nem nas estruturas de dados existentes nem nas aplicações, uma vez que a cada operação no banco, automaticamente este é responsável por replicar as alterações nas tabelas de auditoria. Um dia de trabalho espelhar todas as tabelas? Seria criar uma versão espelho das tabelas que vão ser auditadas? Se realmente forem muitas, sugiro fazer um script para pegar no catálogo (pg_class e pg_attribute) as tabelas do dono do esquema que vão ser auditadas e automaticamente criar as tabelas espelho, mudando nomes e acrescentando campos conforme a conveniência. Marçal de Lima Hokama - _ Fique protegido de ameças utilizando o Novo Internet Explorer 8. Baixe já, é grátis! http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmailutm_medium=Taglineutm_content=Tag1utm_campaign=IE8 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] PGADMIN duvida
Tiago, Uma vez que o seu usuário tenha permissão de acesso às estruturas de dados (tabela, função, etc), seja com o PGAdmin ou qualquer outra ferramenta, ele terá condições de gerar o DDL (script para criação da estrutura) . A princípio, o que pode funcionar é criar as suas tabelas e estruturas e a função de acesso em um esquema x, e dar a este usuário (outro esquema, claro) somente permissão de execução nesta função (e mais nada). Atentar para a parte de segurança na criação da função em: http://www.postgresql.org/docs/current/interactive/sql-createfunction.html Marçal de Lima Hokama - Message: 4 Date: Thu, 3 Dec 2009 16:06:32 -0200 From: Tiago Valério tiagosvale...@gmail.com Subject: Re: [pgbr-geral] PGADMIN duvida To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Message-ID: 9006e7860912031006y214a2f61vb110204b0800...@mail.gmail.com Content-Type: text/plain; charset=iso-8859-1 Entao mas esta eh minha duvida se o usuario tiver um pgadmin ele vai ter acesso a estas info.Os dados que irei passar para o usuario irao permitir que ela tenha acesso via pgadmin caso o queira fazer. 2009/12/3 Pablo Sánchez phack...@gmail.com O PGAdmin não é a ferramenta para dar acesso à usuários ao banco. Busque outra solução para isso. Até onde eu saiba, sempre vai aparecer o código de criação do objeto acessado. 2009/12/3 Tiago Valério tiagosvale...@gmail.com: Assim: Este usuario que criei , nao possui grant para nenhum tipo de transacao nas tabelas do banco.Ele acessara os registros atraves de uma function com o parametro external security definer, porem nao gostria que ele observasse os scripts de create table de outros esquemas (via pgadmin)e ate mesmo o da funcao que esta usando para solicitar os registros do banco. crei o usuario com e dei um grant de connect database apenas e para a funcao dei grant de execute e usage para o esquema proprietario da funcao. 2009/12/3 JotaComm jota.c...@gmail.com Olá, 2009/12/3 Tiago Valério tiagosvale...@gmail.com Ola pessoal Talvez seja uma pergunta basica porem nao conseguir achar na documentacao esta info: Como faco para bloquear a visualizacao dos comandos de create table, create view e create function, etc.. para um usuario no pgadmin? O que você quer dizer com isso? Quer impedir o usuário de criar tabelas, views, funções e etc? Muito obrigado. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- = Pablo Santiago Sánchez Análise e Desenvolvimento de Sistemas Web Zend Certified Engineer #ZEND006757 phack...@gmail.com (61) 9975-0883 http://www.sansis.com.br http://www.corephp.com.br Quidquid latine dictum sit, altum viditur = ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Próxima Parte -- Um anexo em HTML foi limpo... URL: http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20091203/9dcb33ae/attachment.htm -- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Fim da Digest pgbr-geral, volume 34, assunto 13 *** _ Windows 7: agora com conexões automáticas de rede. Conheça. http://www.microsoft.com/brasil/windows7/default.html?WT.mc_id=1539___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] PGADMIN duvida
Tiago, Tentei reproduzir a sua situação: 1- Criei um usuario teste; 2- Criei um esquema seguro e uma tabela seguro.tabela_segura; 3- Conectei com o usuário teste no PgAdmin e mesmo no psql e realmente ele continua tendo acesso à estrutura da tabela (não aos dados). O que falei antes, apesar de ser o procedimento correto, não resolve o seu problema. 4- A princípio pode ser porque as informações das estruturas estão no catálogo e não no esquema do usuário. Continuarei pesquisando aqui. Marçal de Lima Hokama - From: mhok...@hotmail.com To: pgbr-geral@listas.postgresql.org.br Subject: Re: [pgbr-geral] PGADMIN duvida Date: Thu, 3 Dec 2009 18:44:45 + Tiago, Uma vez que o seu usuário tenha permissão de acesso às estruturas de dados (tabela, função, etc), seja com o PGAdmin ou qualquer outra ferramenta, ele terá condições de gerar o DDL (script para criação da estrutura) . A princípio, o que pode funcionar é criar as suas tabelas e estruturas e a função de acesso em um esquema x, e dar a este usuário (outro esquema, claro) somente permissão de execução nesta função (e mais nada). Atentar para a parte de segurança na criação da função em: http://www.postgresql.org/docs/current/interactive/sql-createfunction.html Marçal de Lima Hokama - Message: 4 Date: Thu, 3 Dec 2009 16:06:32 -0200 From: Tiago Valério tiagosvale...@gmail.com Subject: Re: [pgbr-geral] PGADMIN duvida To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Message-ID: 9006e7860912031006y214a2f61vb110204b0800...@mail.gmail.com Content-Type: text/plain; charset=iso-8859-1 Entao mas esta eh minha duvida se o usuario tiver um pgadmin ele vai ter acesso a estas info.Os dados que irei passar para o usuario irao permitir que ela tenha acesso via pgadmin caso o queira fazer. 2009/12/3 Pablo Sánchez phack...@gmail.com O PGAdmin não é a ferramenta para dar acesso à usuários ao banco. Busque outra solução para isso. Até onde eu saiba, sempre vai aparecer o código de criação do objeto acessado. 2009/12/3 Tiago Valério tiagosvale...@gmail.com: Assim: Este usuario que criei , nao possui grant para nenhum tipo de transacao nas tabelas do banco.Ele acessara os registros atraves de uma function com o parametro external security definer, porem nao gostria que ele observasse os scripts de create table de outros esquemas (via pgadmin)e ate mesmo o da funcao que esta usando para solicitar os registros do banco. crei o usuario com e dei um grant de connect database apenas e para a funcao dei grant de execute e usage para o esquema proprietario da funcao. 2009/12/3 JotaComm jota.c...@gmail.com Olá, 2009/12/3 Tiago Valério tiagosvale...@gmail.com Ola pessoal Talvez seja uma pergunta basica porem nao conseguir achar na documentacao esta info: Como faco para bloquear a visualizacao dos comandos de create table, create view e create function, etc.. para um usuario no pgadmin? O que você quer dizer com isso? Quer impedir o usuário de criar tabelas, views, funções e etc? Muito obrigado. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- = Pablo Santiago Sánchez Análise e Desenvolvimento de Sistemas Web Zend Certified Engineer #ZEND006757 phack...@gmail.com (61) 9975-0883 http://www.sansis.com.br http://www.corephp.com.br Quidquid latine dictum sit, altum viditur = ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Próxima Parte -- Um anexo em HTML foi limpo... URL: http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20091203/9dcb33ae/attachment.htm -- ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Fim da Digest pgbr-geral, volume 34, assunto 13 *** Chegou Windows 7. Agora com exibição de
Re: [pgbr-geral] PGADMIN duvida
2009/12/3 Tiago Valério tiagosvalerio em gmail.com O problema que tenho um usuario que ira conectar no meu banco e ira apenas usar a function que criei para ele na selecao dos registros no banco. Ai defini o parametro external security definer para esta function.Mas nao queria que ele tivesse acesso a nehum ddl via pgadmin , pois por mais que ele nao tenha grant no objeto ele consegue acessar o mesmo e ver os ddl`s.Existe uma forma de bloquear isto no pgadmin? Pessoal nao sei se fui claro mas resumindo nao gostaria que o usuario olhasse os ddl`s de nehum objeto via pgadmin. Obs!!!Este usuario tenho que passar dados como ip e porta do banco pois ele tera que conectar sua aplicacao mas nao gostaria que ele observasse as regras de negocio que tenho no banco e com os ddl`s ele pode ter um visao geral disto. Pessoal Obrigado pela ajuda. Tiago, verificamos aqui e o comando que o usuário dá quando solicita uma estrutura de uma tabela (/d nome_tabela), por exemplo: CONSULTA SELECT c.oid, n.nspname, c.relname FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relname ~ '^(tabela_teste)$' AND n.nspname ~ '^(cruso)$' ORDER BY 2, 3; ** Portanto para resolver isso teria que barrar esse usuário de acessar o catálogo. Não sei se seria possível. Marçal de Lima Hokama -- _ Fique protegido de ameças utilizando o Novo Internet Explorer 8. Baixe já, é grátis! http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmailutm_medium=Taglineutm_content=Tag1utm_campaign=IE8___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral