Re: [pgbr-geral] Benchmark PostgreSQL x MySQL

2014-03-31 Por tôpico Marcal Hokama
 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

2013-06-18 Por tôpico Marcal Hokama

 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

2013-06-01 Por tôpico Marcal Hokama

 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

2013-01-18 Por tôpico Marcal Hokama
 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

2012-03-08 Por tôpico Marcal Hokama



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

2011-12-12 Por tôpico Marcal Hokama


 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

2011-11-25 Por tôpico Marcal Hokama

 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

2011-11-24 Por tôpico Marcal Hokama

 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

2011-11-24 Por tôpico Marcal Hokama


  
   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

2011-11-16 Por tôpico Marcal Hokama


 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

2011-11-14 Por tôpico Marcal Hokama

 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

2011-11-03 Por tôpico Marcal Hokama

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)

2011-10-16 Por tôpico Marcal Hokama


 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

2011-10-14 Por tôpico Marcal Hokama


 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

2011-10-14 Por tôpico Marcal Hokama


 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

2011-10-14 Por tôpico Marcal Hokama




 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)

2011-10-14 Por tôpico Marcal Hokama


 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)‏

2011-10-14 Por tôpico Marcal Hokama




 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)

2011-10-14 Por tôpico Marcal Hokama




 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)

2011-10-12 Por tôpico Marcal Hokama

 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?

2011-10-11 Por tôpico Marcal Hokama


 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)

2011-10-09 Por tôpico Marcal Hokama

 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

2011-10-08 Por tôpico Marcal Hokama

 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

2011-09-07 Por tôpico Marcal Hokama



 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

2011-09-07 Por tôpico Marcal Hokama


 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

2011-09-04 Por tôpico Marcal Hokama



 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

2011-02-28 Por tôpico Marcal Hokama


 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

2011-02-25 Por tôpico Marcal Hokama


 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

2010-12-18 Por tôpico Marcal Hokama

 
 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

2010-11-16 Por tôpico Marcal Hokama

___
 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

2010-11-16 Por tôpico Marcal Hokama


 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

2010-11-16 Por tôpico Marcal Hokama

___
 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

2010-11-11 Por tôpico Marcal Hokama


 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

2010-11-09 Por tôpico Marcal Hokama

 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

2010-11-02 Por tôpico Marcal Hokama

 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

2010-09-27 Por tôpico Marcal Hokama

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

2010-05-04 Por tôpico Marcal Hokama




 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

2010-02-25 Por tôpico Marcal Hokama

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

2010-01-22 Por tôpico Marcal Hokama


 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

2010-01-20 Por tôpico Marcal Hokama


 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

2010-01-03 Por tôpico Marcal Hokama

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?

2009-12-30 Por tôpico Marcal Hokama


 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

2009-12-30 Por tôpico Marcal Hokama

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?

2009-12-29 Por tôpico Marcal Hokama

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?

2009-12-29 Por tôpico Marcal Hokama




 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

2009-12-17 Por tôpico Marcal Hokama


 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

2009-12-17 Por tôpico Marcal Hokama


 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

2009-12-16 Por tôpico Marcal Hokama


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

2009-12-14 Por tôpico Marcal Hokama


 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-13 Por tôpico Marcal Hokama

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

2009-12-03 Por tôpico Marcal Hokama

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

2009-12-03 Por tôpico Marcal Hokama


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-03 Por tôpico Marcal Hokama

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