Re: [pgbr-geral] Sub-Select
Euler Taveira de Oliveira escreveu: Não entendi... O que tem o tipo? Qual o driver está retornando isso? Não me lembro disso ter sido alterado da 8.3 para 8.4. A informação de tamanho do tipo fica no catálogo (indiretamente -- format_type()). Eu tenho o seguinte select: SELECT (select usuario from usuarios where chave=(select autorizadopor from pedidocompra where pedido=e.pedidocompra)) as quemautorizoucompra FROM entradas e WHERE e.tipoentrada='0' and e.dataoperacao = current_date - 3 Executando esta consulta na 8.4, o campo QuemAutorizouCompra, retorna varchar(20), que é o tipo do campo usuario da tabela de usuários, porém a mesma consulta executando na 8.3, me retorna apenas varchar, sem a limitação de 20. Estou observando isto pelo pgAdmin, não sei se é possível fazer o psql mostrar o tipo da coluna como faz o pgAdmin, se for possível eu posto o resultado, queria apenas entender o que está acontecendo. -- Vinicius A. Santos www.msisolucoes.com.br ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Mudança de partição postgresql
Pessoal, Uso o ubuntu server LTS 8.04 64 bits e tenho o postgre 8.3 rodando nele. Criei uma partição chamada /db para ficar os bancos de dados, mas o postgre foi instalado na /root e ta armazenando lá. O problema é que a partição /root é pequena e o banco está acabando com o espaço. Como faço para alterar o local aonde ficam armazenados meus bancos sem ter problema com meus sistemas? att, Daniel___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Mudança de partição postgresql
2009/7/30 Daniel daniel.frutu...@ig.com.br Pessoal, Uso o ubuntu server LTS 8.04 64 bits e tenho o postgre 8.3 rodando nele. Criei uma partição chamada /db para ficar os bancos de dados, mas o postgre foi instalado na /root e ta armazenando lá. O problema é que a partição /root é pequena e o banco está acabando com o espaço. Como faço para alterar o local aonde ficam armazenados meus bancos sem ter problema com meus sistemas? 1) Desligue o PostgreSQL 2) Mova a pasta do postgresql para o local desejado 3) Altere o arquivo de configuração para que o PG procure pela pasta no novo local. Se estiveres usando o PostgreSQL dos pacotes do Ubuntu/Debian, o arquivo de configuração estará em /etc/postgresql/8.3/main/postgresql.conf (veja a diretriz data_directory) 4) Reinicie o PostgreSQL Roberto ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Mudança de partição postgresql
Leve em consideração que para manter as permissoes e a segurança da pasta antiga utilize para copiar a base o comando # cp -a /pasta_atual_banco /pasta_nova_banco pode alterar o postgres.conf como o ilustre amigo Roberto relatou ou alterar a linha de comando que faz a incialização do banco a inicialização do banco é gerada pelo comando postmaster pode ser utilizado o parametro -D -D DATADIR database directory como em postmaster -D /meu_banco_novo esse é um exemplo simples att Joares Luis Dalorsoleta 2009/7/30 Roberto Mello roberto.me...@gmail.com 2009/7/30 Daniel daniel.frutu...@ig.com.br Pessoal, Uso o ubuntu server LTS 8.04 64 bits e tenho o postgre 8.3 rodando nele. Criei uma partição chamada /db para ficar os bancos de dados, mas o postgre foi instalado na /root e ta armazenando lá. O problema é que a partição /root é pequena e o banco está acabando com o espaço. Como faço para alterar o local aonde ficam armazenados meus bancos sem ter problema com meus sistemas? 1) Desligue o PostgreSQL 2) Mova a pasta do postgresql para o local desejado 3) Altere o arquivo de configuração para que o PG procure pela pasta no novo local. Se estiveres usando o PostgreSQL dos pacotes do Ubuntu/Debian, o arquivo de configuração estará em /etc/postgresql/8.3/main/postgresql.conf (veja a diretriz data_directory) 4) Reinicie o PostgreSQL Roberto ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Esta mensagem, incluindo seus anexos, pode conter informações privilegiadas e/ou de caráter confidencial, não podendo ser retransmitida sem autorização do remetente. Se você não e o destinatário ou pessoa autorizada a recebê-la, informamos que o seu uso, divulgação, copia ou arquivamento são proibidos. Portanto, se você recebeu esta mensagem por engano, por favor, nos informe respondendo imediatamente a este e-mail e em seguida apague-a. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Valores de configuração de Perfo rmance
Bem... com certeza eu devo ter sido motivo de piada para a maioria do pessoal da lista, que provavelmente é DBA e têm sob sua responsabilidade poucas instâncias de bancos de dados com terabytes de tamanho. Mesmo assim, preciso adaptar as configurações de performance para nossos clientes, pois preciso usar ao máximo o que os servidores deles podem oferecer. Eu utilizo estas configurações como base: *shared_buffers:* entre 15% e 25% da memória RAM disponível (25% somente a partir de 2 GB de RAM); *temp_buffers:* 8 MB para menos de 2 GB de RAM, acima disso 16 MB; *work_mem:* 4 MB até 512 MB de RAM; acima de 512 MB e até 2 GB uso 8 MB; acima disso 16 MB; *maintenance_work_mem:* sempre 50% da memória RAM disponível. *fsync:* sempre on - não podemos confiar nos discos dos clientes; *synchonous_commit:* on - idem *full_page_writes:* on - idem *checkpoint_segments: *4 para máquinas com discos pequenos e lentos (até 7200 RPM). Se o cliente possui RAID, colocamos 16 segmentos. *effective_cache_size:* 50% da memória RAM disponível. * Estes valores foram definidos após testes com diversas bases de clientes, a mais ou menos 2 anos com a versão 8.0 do PostgreSQL. Eu entendo que deveria ser feito uma análise de performance individual para cada cliente, mas administrar mais de 200 bases de dados é complicado, ainda mais levando em consideração a falta de hardware de alguns. Nos clientes que dispõe de um servidor dedicado estas análises são feitas e as configurações são personalizadas. Agora, gostaria de uma validação da comunidade para saber se não estou colocando valores muito fora da realidade. E também saber se existe alguma outra opção que possa impactar na performance para estes hardwares singelos. NOTA: nosso ERP é bem dinâmico, rodando em clientes pequenos (de 1 a 4 clientes simultâneos) até clientes de médio porte (com mais de 60 clientes simultâneos). Portanto a escolha de outro SGBD está fora de questão - como já foi sugerido em outros fóruns. -- Tiago J. Adami Dois Vizinhos - Paraná - Brasil 2009/7/29 Tiago Adami adam...@gmail.com A muito tempo atrás eu troquei uns e-mails com um expert em PostgreSQL que se não me engano trabalhava em uma empresa chamada Varlena ou algo assim - infelizmente perdi o e-mail e não posso dar mais detalhes. Naquele tempo a versão atual era a 7.4, e ele me passou valores em percentuais para as principais configurações de performance do banco em situações onde o hardware não é muito parrudo. Funcionou bem, mas vejo que hoje existem muitas novas opções de performance que podem ser adotadas em hardwares de servidores modestos. Pois bem, trabalho para uma empresa que desenvolve um sistema ERP escrito em Visual Foxpro 9 e o banco é unicamente PostgreSQL (atualmente versão 8.2). Temos mais de 200 clientes por todo o Brasil, com bases de dados que variam de 10 Mb até 500 Mb (baseados no tamanho do backup realizado com as opções -F c -Z 9 do pg_dump). Como atendemos clientes pequenos e médios, alguns clientes possuem máquinas de servidor que não passam de um Celeron 800 com 512 MB de RAM (máquinas com o sistema standalone). Entretanto, alguns clientes maiores possuem servidores Xeon Quad-Core com 4 Gb de RAM com RAID 0+1 ou 5. Baseado nesta faixa de hardware, o que vocês poderiam me recomendar em configurações para aumentar a performance utilizando a versão 8.2 ou superior do PostgreSQL? -- Tiago J. Adami Dois Vizinhos - Paraná - Brasil ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sub-Select
2009/7/30 Vinicius A. Santos vinic...@msisolucoes.com.br SELECT (select usuario from usuarios where chave=(select autorizadopor from pedidocompra where pedido=e.pedidocompra)) as quemautorizoucompra FROM entradas e WHERE e.tipoentrada='0' and e.dataoperacao = current_date - 3 Executando esta consulta na 8.4, o campo QuemAutorizouCompra, retorna varchar(20), que é o tipo do campo usuario da tabela de usuários, porém a mesma consulta executando na 8.3, me retorna apenas varchar, sem a limitação de 20. corte Caro Vinicius, Observe os testes abaixo no 8.2, 8.3 e 8.4: postgresql-8.2 postg...@bdteste=# create table foo(codigo integer, nome varchar(40)); CREATE TABLE postg...@bdteste=# postg...@bdteste=# \d foo Table public.foo Column | Type | Modifiers +---+--- codigo | integer | nome | character varying(40) | postg...@bdteste=# postg...@bdteste=# create temp table w_foo as bdteste-# select (select nome from foo where codigo = 1) as nome1, bdteste-# (select nome from foo where codigo = 2) as nome2; SELECT postg...@bdteste=# postg...@bdteste=# \d w_foo Table pg_temp_1.w_foo Column | Type| Modifiers +---+--- nome1 | character varying | nome2 | character varying | postg...@bdteste=# postg...@bdteste=# select version(); version -- PostgreSQL 8.2.13 on i686-pc-linux-gnu, compiled by GCC cc (Ubuntu 4.3.3-5ubuntu4) 4.3.3 (1 row) /postgresql-8.2 postgresql-8.3 postg...@bdteste=# create table foo(codigo integer, nome varchar(40)); CREATE TABLE postg...@bdteste=# postg...@bdteste=# \d foo Tabela public.foo Coluna | Tipo | Modificadores +---+--- codigo | integer | nome | character varying(40) | postg...@bdteste=# postg...@bdteste=# create temp table w_foo as bdteste-# select (select nome from foo where codigo = 1) as nome1, bdteste-# (select nome from foo where codigo = 2) as nome2; SELECT postg...@bdteste=# postg...@bdteste=# \d w_foo Tabela pg_temp_1.w_foo Coluna | Tipo | Modificadores +---+--- nome1 | character varying(40) | nome2 | character varying(40) | postg...@bdteste=# postg...@bdteste=# select version(); version --- PostgreSQL 8.3.7 on i486-pc-linux-gnu, compiled by GCC gcc-4.3.real (Ubuntu 4.3.3-5ubuntu4) 4.3.3 (1 registro) /postgresql-8.3 postgresql-8.4 bdteste=# create table foo(codigo integer, nome varchar(40)); CREATE TABLE bdteste=# bdteste=# \d foo Table public.foo Column | Type | Modifiers +---+--- codigo | integer | nome | character varying(40) | bdteste=# bdteste=# create temp table w_foo as bdteste-# select (select nome from foo where codigo = 1) as nome1, bdteste-# (select nome from foo where codigo = 2) as nome2; SELECT bdteste=# bdteste=# \d w_foo Table pg_temp_1.w_foo Column | Type | Modifiers +---+--- nome1 | character varying(40) | nome2 | character varying(40) | bdteste=# bdteste=# select version(); version -- PostgreSQL 8.4.0 on i686-pc-linux-gnu, compiled by GCC gcc (Ubuntu 4.3.3-5ubuntu4) 4.3.3, 32-bit (1 row) /postgresql-8.4 Pela demonstração acima pode-se notar que no 8.2 a tabela temporária ficou com o varchar sem especificacao do tamanho e no 8.3 e 8.4 ficou certinho. -- Fabrízio de Royes Mello Blog sobre PostgreSQL: http://fabriziomello.blogspot.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] Parse
Bom Dia Osvaldo... Exatamente é o que estamos conjurando ser a aplicação, pois tem outra aplicação que não utiliza a Zend como frame work e faz todo esse procedimento e não está acontecendo isso... Suspeito que seja algum parâmetro ativo algo do gênero... Mas é exatamente isso é uma consulta que é executada N vezes... Mas até agora o problema persiste :( 2009/7/29 Osvaldo Kussama osvaldo.kuss...@gmail.com 2009/7/29 Kauí Aires Oliveira kauiai...@gmail.com: Olá Dickson Não usamos ORM vem da zend direto a aplicação... o erro é porque qualquer query que seja executada faz o seguinte preparete query - execute query - dealocate preparetequery E quando o sistema tenta passar alguma coisa ele faz o parse e o dealocate da assinatura do preparete... Se eu entendi corretamente o problema está em sua aplicação. A vantagem de usar o PREPARE é que o PostgreSQL analisa, reescreve e planeja uma única vez e cada EXECUTE apenas executa com os parâmetros recebidos. Só tem sentido se um determinado modelo de query vai ser executado múltiplas vezes, não faz sentido usar este procedimento *a cada query*. Osvaldo ___ 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
[pgbr-geral] NOT NULL
Pessoal, eu consigo colocar uma restrição em um campo de uma tabela para ser NOT NULL. No entanto eu não consigo, por exemplo, colocar uma restrição para um campo do tipo character varying(30) não receber vazio. O que tô querendo dizer é que NULL e vazio é diferente. E o que estou querendo saber é como colocar uma restrição no banco de dados para ele não receber valor vazio. abraços -- Sérgio Antônio dos Santos Bacharel em Sistemas de Informação (31) 8573-7004 http://serginhosant.wordpress.com/ http://www.rccvicosa.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] Parse
Kaui, bom dia... Pelo que você escreveu: preparete query - execute query - dealocate preparetequery Bem, isso ao meu ver não faz sentido... você está indicando ao banco que realize o parse toda vez que a consulta seja realizada com o dealocate. Se a consulta é utilizada repetidas vezes dentro da seção aberta, não precisa remove-la do plano de consultas (dealocate), pois vai perder todo o benefício que o prepare te dá. Espero ter ajudado. Att, -- Charly Frankl http://javadevilopers.blogspot.com/ charlyfra...@gmail.com Linux user #391083 2009/7/30 Kauí Aires Oliveira kauiai...@gmail.com Bom Dia Osvaldo... Exatamente é o que estamos conjurando ser a aplicação, pois tem outra aplicação que não utiliza a Zend como frame work e faz todo esse procedimento e não está acontecendo isso... Suspeito que seja algum parâmetro ativo algo do gênero... Mas é exatamente isso é uma consulta que é executada N vezes... Mas até agora o problema persiste :( 2009/7/29 Osvaldo Kussama osvaldo.kuss...@gmail.com 2009/7/29 Kauí Aires Oliveira kauiai...@gmail.com: Olá Dickson Não usamos ORM vem da zend direto a aplicação... o erro é porque qualquer query que seja executada faz o seguinte preparete query - execute query - dealocate preparetequery E quando o sistema tenta passar alguma coisa ele faz o parse e o dealocate da assinatura do preparete... Se eu entendi corretamente o problema está em sua aplicação. A vantagem de usar o PREPARE é que o PostgreSQL analisa, reescreve e planeja uma única vez e cada EXECUTE apenas executa com os parâmetros recebidos. Só tem sentido se um determinado modelo de query vai ser executado múltiplas vezes, não faz sentido usar este procedimento *a cada query*. Osvaldo ___ 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 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Parse
Em Wed, 29 Jul 2009 19:03:23 -0300, Kauí Aires Oliveira kauiai...@gmail.com escreveu: Olá Dickson Não usamos ORM vem da zend direto a aplicação... o erro é porque qualquer query que seja executada faz o seguintepreparete query - execute query - dealocate preparetequery É exatamente o que um Hibernate faz na grande maioria da totalidade das vezes. Conforme o Osvaldo falou em outro e-mail, olhe para aplicação. Afinal em praticamente 90% dos casos o problema está lá. :) Um abraço e mantenha-nos informados... -- Dickson S. Guedes mail/xmpp: gue...@guedesoft.net - skype: guediz http://guedesoft.net - http://www.postgresql.org.br http://www.rnp.br/keyserver/pks/lookup?search=0x8F3E3C06D428D10A ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] NOT NULL
ALTER TABLE nome_da_tabela ADD CONSTRAINT nome_da_constraint CHECK ( nome_do_campo '' ) 2009/7/30 sergio santos sergio.serginhos...@gmail.com Pessoal, eu consigo colocar uma restrição em um campo de uma tabela para ser NOT NULL. No entanto eu não consigo, por exemplo, colocar uma restrição para um campo do tipo character varying(30) não receber vazio. O que tô querendo dizer é que NULL e vazio é diferente. E o que estou querendo saber é como colocar uma restrição no banco de dados para ele não receber valor vazio. abraços -- Sérgio Antônio dos Santos Bacharel em Sistemas de Informação (31) 8573-7004 http://serginhosant.wordpress.com/ http://www.rccvicosa.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Tiago J. Adami Dois Vizinhos - Paraná - Brasil ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] NOT NULL
Sergio, bom dia... Basta utilizar uma trigger. Att, -- Charly Frankl http://javadevilopers.blogspot.com/ charlyfra...@gmail.com Linux user #391083 2009/7/30 sergio santos sergio.serginhos...@gmail.com Pessoal, eu consigo colocar uma restrição em um campo de uma tabela para ser NOT NULL. No entanto eu não consigo, por exemplo, colocar uma restrição para um campo do tipo character varying(30) não receber vazio. O que tô querendo dizer é que NULL e vazio é diferente. E o que estou querendo saber é como colocar uma restrição no banco de dados para ele não receber valor vazio. abraços -- Sérgio Antônio dos Santos Bacharel em Sistemas de Informação (31) 8573-7004 http://serginhosant.wordpress.com/ http://www.rccvicosa.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
Re: [pgbr-geral] NOT NULL
2009/7/30 sergio santos sergio.serginhos...@gmail.com O que tô querendo dizer é que NULL e vazio é diferente. E o que estou querendo saber é como colocar uma restrição no banco de dados para ele não receber valor vazio. Em Thu, 30 Jul 2009 10:28:57 -0300, Tiago Adami adam...@gmail.com escreveu: ALTER TABLE nome_da_tabela ADD CONSTRAINT nome_da_constraint CHECK ( nome_do_campo '' ) Apenas fazendo um adendo pode ser necessário usar o TRIM() para que o usuário não insira 'espaços' por exemplo. []s -- Dickson S. Guedes mail/xmpp: gue...@guedesoft.net - skype: guediz http://guedesoft.net - http://www.postgresql.org.br http://www.rnp.br/keyserver/pks/lookup?search=0x8F3E3C06D428D10A ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] NOT NULL
Seguinte pessoal, usando o phpPgAdmin 4.2.1 (PHP 5.2.0-8+etch15) eu fui em: Restrição e escolhi a opção Adicona checagem Adicona mesmo... rs e coloquei a restrição usando TRIM abraços e muito obrigado 2009/7/30 Dickson S. Guedes lis...@guedesoft.net 2009/7/30 sergio santos sergio.serginhos...@gmail.com O que tô querendo dizer é que NULL e vazio é diferente. E o que estou querendo saber é como colocar uma restrição no banco de dados para ele não receber valor vazio. Em Thu, 30 Jul 2009 10:28:57 -0300, Tiago Adami adam...@gmail.com escreveu: ALTER TABLE nome_da_tabela ADD CONSTRAINT nome_da_constraint CHECK ( nome_do_campo '' ) Apenas fazendo um adendo pode ser necessário usar o TRIM() para que o usuário não insira 'espaços' por exemplo. []s -- Dickson S. Guedes mail/xmpp: gue...@guedesoft.net - skype: guediz http://guedesoft.net - http://www.postgresql.org.br http://www.rnp.br/keyserver/pks/lookup?search=0x8F3E3C06D428D10A ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Sérgio Antônio dos Santos Bacharel em Sistemas de Informação (31) 8573-7004 http://serginhosant.wordpress.com/ http://www.rccvicosa.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Dúvida em Grant
Olá, estou com duas dúvidas. Gostaria primeiramente de saber se é possível dar um grant via command line, a segunda é saber se a seguinte linha GRANT ALL ON SCHEMA public TO public; garante acesso à todos os usuários do banco de dados ao determinado schema, eu não consegui compreender direito essa linha. Grato desde já ! -- Paulo Mendes ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Dúvida em Grant
2009/7/30 Paulo Mendes paulo.mende...@gmail.com Olá, estou com duas dúvidas. Gostaria primeiramente de saber se é possível dar um grant via command line, a segunda é saber se a seguinte linha GRANT ALL ON SCHEMA public TO public; garante acesso à todos os usuários do banco de dados ao determinado schema, eu não consegui compreender direito essa linha. Conforme a documentação oficial [1]: The key word PUBLIC indicates that the privileges are to be granted to all roles, including those that might be created later. PUBLIC can be thought of as an implicitly defined group that always includes all roles. Any particular role will have the sum of privileges granted directly to it, privileges granted to any role it is presently a member of, and privileges granted to PUBLIC. [1] http://www.postgresql.org/docs/8.4/interactive/sql-grant.html -- Fabrízio de Royes Mello Blog sobre PostgreSQL: http://fabriziomello.blogspot.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] Valores de configuração de Perfo rmance
Tiago Adami escreveu: *Não* existe número mágico para sintonia de SGBD. Você precisa entender os parâmetros e conhecer a sua aplicação para adaptar as configurações do PostgreSQL de acordo com isso. Sugiro que leia um material em [1] [2] e [3]. Agora, gostaria de uma validação da comunidade para saber se não estou colocando valores muito fora da realidade. E também saber se existe alguma outra opção que possa impactar na performance para estes hardwares singelos. É difícil saber se está fora sem conhecer a sua aplicação. NOTA: nosso ERP é bem dinâmico, rodando em clientes pequenos (de 1 a 4 clientes simultâneos) até clientes de médio porte (com mais de 60 clientes simultâneos). Portanto a escolha de outro SGBD está fora de questão - como já foi sugerido em outros fóruns. Outro SGBD? Acho que ninguém aqui da lista faria isso. ;) A não ser que você tenha dezenas de milhares de usuários e centenas de milhões de transações por dia. ;) Uma última dica, é homologar e planejar a migração para 8.4. A cada versão temos melhorado a performance e criado mecanismos para entendermos porque o PostgreSQL não está entregando uma performance boa. [1] http://wiki.postgresql.org/wiki/Performance_Optimization [2] http://www.postgresql.org.br/eventos/pgconbr [3] http://www.timbira.com/presentations/pgday_df_2009/perf_pg.pdf -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sub-Select
Pela demonstração acima pode-se notar que no 8.2 a tabela temporária ficou com o varchar sem especificacao do tamanho e no 8.3 e 8.4 ficou certinho. Estranho, eu realizei o teste agora, apenas com a 8.3. Eu fiz uma visão com o select que eu postei, então fiz o teste no psql com \d nesta visão. O psql retornou o tipo character varying(20). Porém o pgAdmin e a aplicação(em Delphi), o reconhecem como character varying, na mesma base 8.3. Já resolvemos o problema com o cast, mas queria entender o que houve. -- View this message in context: http://www.nabble.com/Sub-Select-tp24724124p24742292.html Sent from the PostgreSQL - Brasil mailing list archive at Nabble.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] Dúvida em Grant
2009/7/30 Paulo Mendes paulo.mende...@gmail.com: Olá, estou com duas dúvidas. Gostaria primeiramente de saber se é possível dar um grant via command line, a segunda é saber se a seguinte linha GRANT ALL ON SCHEMA public TO public; garante acesso à todos os usuários do banco de dados ao determinado schema, eu não consegui compreender direito essa linha. O GRANT é um comando SQL [1]. Ele deve ser utilizado a partir de qualquer cliente, por ex., o psql [2]. Quanto a segunda dúvida, são dois significados diferentes para public: O primeiro public se refere ao schema. Ele é o schema padrão utilizado quando não é especificado qualquer schema. Por ex. são equivalentes public.sua_tabela e sua_tabela. [3] O segundo public se refere a uma palavra-chave que significa todas as roles, tanto as existentes quanto as que vierem a ser criadas. [1] Osvaldo [1] http://www.postgresql.org/docs/current/interactive/sql-grant.html [2] http://www.postgresql.org/docs/current/interactive/app-psql.html [3] http://www.postgresql.org/docs/current/interactive/ddl-schemas.html#DDL-SCHEMAS-PUBLIC ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sub-Select
Olá, Vinícius. O seu subselect contém a clásula UNION? Fiz um teste aqui com um banco de dados interno no 8.3: SELECT chamado.titulo FROM chamado UNION SELECT ''; E o resultado no pgAdmin 3 foi character varying. Se eu remover o conteúdo do union e trazer somente os registros da tabela: SELECT chamado.titulo FROM chamado; Aparece character varying (1000). Não será este o seu problema? -- Tiago J. Adami 2009/7/30 Vinicius A. Santos vinic...@msisolucoes.com.br Pela demonstração acima pode-se notar que no 8.2 a tabela temporária ficou com o varchar sem especificacao do tamanho e no 8.3 e 8.4 ficou certinho. Estranho, eu realizei o teste agora, apenas com a 8.3. Eu fiz uma visão com o select que eu postei, então fiz o teste no psql com \d nesta visão. O psql retornou o tipo character varying(20). Porém o pgAdmin e a aplicação(em Delphi), o reconhecem como character varying, na mesma base 8.3. Já resolvemos o problema com o cast, mas queria entender o que houve. -- View this message in context: http://www.nabble.com/Sub-Select-tp24724124p24742292.html Sent from the PostgreSQL - Brasil mailing list archive at Nabble.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
Re: [pgbr-geral] Dúvida em Grant
Era exatamente isso que eu queria saber Osvaldo ! Muito Obrigado pela ajuda ! ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sub-Select
Vinicius A. Santos escreveu: Pela demonstração acima pode-se notar que no 8.2 a tabela temporária ficou com o varchar sem especificacao do tamanho e no 8.3 e 8.4 ficou certinho. Estranho, eu realizei o teste agora, apenas com a 8.3. Eu fiz uma visão com o select que eu postei, então fiz o teste no psql com \d nesta visão. O psql retornou o tipo character varying(20). Porém o pgAdmin e a aplicação(em Delphi), o reconhecem como character varying, na mesma base 8.3. Já resolvemos o problema com o cast, mas queria entender o que houve. Eu não entendi porque o tipo importa mas isso é um problema da aplicação (seja ela o PGAdmin ou Delphi) pois o PostgreSQL é capaz de retornar o tipo com o respectivo tamanho (se for o caso). Veja: template1=# select version(); version --- PostgreSQL 8.0.21 on i686-pc-linux-gnu, compiled by GCC i686-pc-linux-gnu-gcc (GCC) 4.1.2 (Gentoo 4.1.2 p1.1) (1 registro) template1=# create table foo (a integer, b varchar(30), c char(10), template1(# d numeric(5,2)); CREATE TABLE template1=# \! cat /tmp/x SELECT a.attname, pg_catalog.format_type(a.atttypid, a.atttypmod) FROM pg_catalog.pg_attribute a WHERE a.attrelid = 'foo'::regclass AND a.attnum 0 AND NOT a.attisdropped ORDER BY a.attnum template1=# \i /tmp/x attname | format_type -+--- a | integer b | character varying(30) c | character(10) d | numeric(5,2) (4 registros) -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sub-Select
Aparece character varying (1000). Não será este o seu problema? Não, o meu select não tem UNION, segue o select: SELECT (select usuario from usuarios where chave=(select autorizadopor from pedidocompra where pedido=e.pedidocompra)) as quemautorizoucompra FROM entradas e WHERE e.tipoentrada='0' and e.dataoperacao = current_date - 3 -- View this message in context: http://www.nabble.com/Sub-Select-tp24724124p24742835.html Sent from the PostgreSQL - Brasil mailing list archive at Nabble.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] Sub-Select
Euler Taveira de Oliveira escreveu: Eu não entendi porque o tipo importa mas isso é um problema da aplicação (seja ela o PGAdmin ou Delphi) pois o PostgreSQL é capaz de retornar o tipo com o respectivo tamanho (se for o caso). Veja: Na verdade não importa muito(a não ser pelo trabalho de fazer o cast, e fazer as adequações no Delphi). Eu usei o psql diretamente no servidor(Fedora), para fazer a consulta. Porém se eu conectar pelo meu terminal WinXP, através do pgAdmin, acontece isso, não sei se pode ser a libpq(ou outra DLL), o fato de os 2 aplicativos não conseguirem retornar corretamente. -- Vinicius A. Santos www.msisolucoes.com.br ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] duvidas apache.commons.pool
Prezados, Em verificacoes de rotina de um determinado server de banco de dados vi o seguinte: duração: 0.028 ms ligação S_1: BEGIN duration: 0.017 ms executar S_1: BEGIN duração: 0.897 ms análise de unnamed: SELECT veioid,veiplaca FROM veiculo INNER JOIN login_veiculo ON logvveioid = veioid WHERE logvlogoid = 6 duração: 0.137 ms ligação unnamed: SELECT veioid,veiplaca FROM veiculo INNER JOIN login_veiculo ON logvveioid = veioid WHERE logvlogoid = 6 duration: 0.182 ms executar unnamed: SELECT veioid,veiplaca FROM veiculo INNER JOIN login_veiculo ON logvveioid = veioid WHERE logvlogoid = 6 duração: 0.037 ms ligação S_2: ROLLBACK duration: 0.041 ms executar S_2: ROLLBACK E nao entendi porque estava fazendo isso, ai perguntei e descobri que estavam usando pool de conexoes nesse server e que isso era referente ao pool. A duvida é se isso pode gerar algum problema de performance futuramente? Digo isso, porque hoje nesse server a demanda esta baixa porque ainda esta em testes, mais daqui um mes ira substituir outro programa de producao. Resumindo isso que o pool de conexoes faz, pode prejudicar a performance ou pode me trazer problemas futuros ou nao preciso esquentar a cabeça que isso é normal? abraços. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Dúvida com Permissões.
Olá Lista. Acabei de perguntar a respeito dos Grants, e consgui entender, mas estou confuso com uma coisa. Eu tenho dois schemas no bem banco de dados, historic e public. pra cada tabela do schema public existe uma correspondente no schema historic. Em cada tabela do schema public existe um gatilho que aciona uma função no schema historic que executa uma operação na tabela correspondente. Como deve funcionar o grant para que qualquer usuário conectado no banco consiga executar as funções que estão no schema historic ?? Paulo Mendes. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Sub-Select
Vinicius A. Santos escreveu: Euler Taveira de Oliveira escreveu: Eu não entendi porque o tipo importa mas isso é um problema da aplicação (seja ela o PGAdmin ou Delphi) pois o PostgreSQL é capaz de retornar o tipo com o respectivo tamanho (se for o caso). Veja: Na verdade não importa muito(a não ser pelo trabalho de fazer o cast, e fazer as adequações no Delphi). 'Cast' para que? (Desculpe, eu não entendi ainda...) Eu usei o psql diretamente no servidor(Fedora), para fazer a consulta. Porém se eu conectar pelo meu terminal WinXP, através do pgAdmin, acontece isso, não sei se pode ser a libpq(ou outra DLL), o fato de os 2 aplicativos não conseguirem retornar corretamente. Como eu disse acima, o problema é da aplicação (PGAdmin ou driver utilizado no Delphi); a libpq *não* tem nada a ver com isso. -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Valores de configuração de Perfo rmance
Obrigado, Euler. Justamente, o que eu precisava era de uma indicação confiável para bons materiais para entender estes parâmetros. A aplicação não executa rotinas muito pesadas, apenas quando há atualização de versão ou é necessário reprocessar algum tipo de registro (como registros fiscais ou contábeis). A propósito, não consigo me lembrar direito se existe um aplicativo ou add-on para o pgAdmin que realize métricas para calcular o valor das configurações de acordo com o hardware da máquina e o perfil de uso do SGBD (OLAP, OLTP, desenvolvimento, etc). Alguém tem conhecimento de uma ferramenta que chegue próximo a isso? De antemão, vou ler estas documentações com a devida atenção. Mais uma vez, obrigado. -- Tiago J. Adami Dois Vizinhos - Paraná - Brasil 2009/7/30 Euler Taveira de Oliveira eu...@timbira.com Tiago Adami escreveu: *Não* existe número mágico para sintonia de SGBD. Você precisa entender os parâmetros e conhecer a sua aplicação para adaptar as configurações do PostgreSQL de acordo com isso. Sugiro que leia um material em [1] [2] e [3]. Agora, gostaria de uma validação da comunidade para saber se não estou colocando valores muito fora da realidade. E também saber se existe alguma outra opção que possa impactar na performance para estes hardwares singelos. É difícil saber se está fora sem conhecer a sua aplicação. NOTA: nosso ERP é bem dinâmico, rodando em clientes pequenos (de 1 a 4 clientes simultâneos) até clientes de médio porte (com mais de 60 clientes simultâneos). Portanto a escolha de outro SGBD está fora de questão - como já foi sugerido em outros fóruns. Outro SGBD? Acho que ninguém aqui da lista faria isso. ;) A não ser que você tenha dezenas de milhares de usuários e centenas de milhões de transações por dia. ;) Uma última dica, é homologar e planejar a migração para 8.4. A cada versão temos melhorado a performance e criado mecanismos para entendermos porque o PostgreSQL não está entregando uma performance boa. [1] http://wiki.postgresql.org/wiki/Performance_Optimization [2] http://www.postgresql.org.br/eventos/pgconbr [3] http://www.timbira.com/presentations/pgday_df_2009/perf_pg.pdf -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Valores de configuração de Perfor mance
Olá 2009/7/30 Tiago Adami adam...@gmail.com Obrigado, Euler. Justamente, o que eu precisava era de uma indicação confiável para bons materiais para entender estes parâmetros. A aplicação não executa rotinas muito pesadas, apenas quando há atualização de versão ou é necessário reprocessar algum tipo de registro (como registros fiscais ou contábeis). A propósito, não consigo me lembrar direito se existe um aplicativo ou add-on para o pgAdmin que realize métricas para calcular o valor das configurações de acordo com o hardware da máquina e o perfil de uso do SGBD (OLAP, OLTP, desenvolvimento, etc). Alguém tem conhecimento de uma ferramenta que chegue próximo a isso? Como o Euler frisou, não existe um número mágico, estude a literatura que foi indicada minuciosamente, e também como sugestão, comece a trabalhar na migração para a versão 8.4. Há a cada versão, melhorias significativas que ajudam no ganho de performance com o banco de dados. Nenhuma aplicação vai te dar o que você precisa mastigadinho como uma receita de bolo, você deverá fazer várias análises e aplicar o que considerar adequado ao seu produto. -- Marcelo Costa www.marcelocosta.net - “Os muito poderosos e os muito estúpidos possuem uma coisa em comum. Ao invés de alterarem as suas visões para se ajustarem aos fatos do mundo, eles alteram os fatos para ajustá-los às suas visões.”, Doctor Who. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Valores de configuração de Perfo rmance
Tiago Adami escreveu: A propósito, não consigo me lembrar direito se existe um aplicativo ou add-on para o pgAdmin que realize métricas para calcular o valor das configurações de acordo com o hardware da máquina e o perfil de uso do SGBD (OLAP, OLTP, desenvolvimento, etc). Alguém tem conhecimento de uma ferramenta que chegue próximo a isso? pgtune [1]. Vale ressaltar que ela *não* faz nenhum tipo de análise dos seus dados e muito menos das estatísticas do seu banco de dados. A idéia dele é justamente montar um postgresql.conf inicial. [1] http://pgfoundry.org/projects/pgtune/ -- Euler Taveira de Oliveira http://www.timbira.com/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Ajuda select
Pessoal.. preciso do seguinte: eu tenho uma tabela de selos, que vai de 0 ate x.. alguns selos podem estar danificados.. entao eu faco o seguinte select SELECT * FROM tb_selo WHERE ic_selo_danificado = fase; perfeito.. porem nesse caso ele me traz um selo por linha.. exemplo: 0 1 2 3 ** o 4 esta danificado logo nao retorna 5 6 7 8 9 10 11 12 porem eu queria q no meu select retornasse algo assim 0..3 5..12 entenderam?? que ele agrupasse do primeiro ate aonde tiver o prox.. existe alguma coisa facil para fazer isso ou tenho q fazer um function?? valkeu ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Como mover /var/lib/postgres para nova par tição
Salve todos, Tenho um servidor postgres rodando virtualizado em uma domu pelo Xen, mas quando esta domu foi criada eu criei uma partição / com apenas 10GB que é o tamanho padrão adotado por aqui. Atualmente minha base está ocupando quase toda esta partição e estou a beira de um colapso no servidor por falta de espaço. Como o server é virtualizado minha intenção é criar um novo disco virtual com o dimensionamento adequado e após copiar o conteúdo de /var/lib/postgres montar o novo volume sobre este diretório. Minha preocupação é exatamente quanto a esta cópia dos dados. Posso simplesmente parar o postgres e fazer uma cópia deste diretório com o comando cp, ou há alguma surpresa a mais que devo esperar? []s -- Welington Rodrigues Braga -- Web: http://www.welrbraga.eti.br MSN: welrbraga[*]msn·com Gtalk: welrbraga[*]gmail·com Yahoo / Skype: welrbraga PGP Key: 0x6C7654EB Linux User #253605 Em tudo somos atribulados, porém não angustiados; perplexos, porém não desanimados; perseguidos, porém não desamparados; abatidos, porém não destruídos; - 2Co 4:8,9 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Resposta Automática de Ausência
Dear friend: Do you want buy better quality and low price goods, welcome to register on my company website you will get member price VIP price.here many brand electronic products,i belive you will love one of item on our store. (such as digital cameras,mobile,LCD TV,xbox, Laptops,DV,Mp4, GPS, and so on)。 Toshiba Satellite P105S9312 1. Member Price: 119 EUR Apple iMac 20 2.4 GHz D. Member Price: 480 EUR3GS iPhone 32GB Menber Price: 175 EURSony PMW EX1 EX30 XDCAM SBP-8 PHU-60K Combo PKG Member Price: 4460 EURSony PlayStation 3 Edition Bundle - Game console - black - 160 GB Member Price: 165 EUR Please to visit our homepage:w w w . modernflagship.c o m。 Kind Regards___ 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 select
2009/7/30 fabio.ebner fabio.eb...@dnasolution.com.br: Pessoal.. preciso do seguinte: eu tenho uma tabela de selos, que vai de 0 ate x.. alguns selos podem estar danificados.. entao eu faco o seguinte select SELECT * FROM tb_selo WHERE ic_selo_danificado = fase; perfeito.. porem nesse caso ele me traz um selo por linha.. exemplo: 0 1 2 3 ** o 4 esta danificado logo nao retorna 5 6 7 8 9 10 11 12 porem eu queria q no meu select retornasse algo assim 0..3 5..12 entenderam?? que ele agrupasse do primeiro ate aonde tiver o prox.. existe alguma coisa facil para fazer isso ou tenho q fazer um function?? Modifiquei um pouco os dados para testar as condições de contorno. Tente: bdteste=# CREATE TEMP TABLE tb_selo( bdteste(# num int PRIMARY KEY, bdteste(# danificado boolean); NOTA: CREATE TABLE / PRIMARY KEY criará índice implícito tb_selo_pkey na tabela tb_selo CREATE TABLE bdteste=# bdteste=# INSERT INTO tb_selo VALUES (0,FALSE),(1,TRUE),(2,FALSE),(3,FALSE),(4,TRUE),(5,FALSE),(6,FALSE),(7,FALSE),(8,FALSE),(9,FALSE),(10,FALSE),(11,FALSE),(12,FALSE),(13,TRUE),(14,FALSE); INSERT 0 15 bdteste=# bdteste=# SELECT * FROM tb_selo; num | danificado -+ 0 | f 1 | t 2 | f 3 | f 4 | t 5 | f 6 | f 7 | f 8 | f 9 | f 10 | f 11 | f 12 | f 13 | t 14 | f (15 registros) bdteste=# SELECT t1.num AS incio, t2.num AS fim bdteste-# FROM tb_selo t1 INNER JOIN tb_selo t2 bdteste-# ON (t1.num = t2.num) bdteste-# WHERE NOT EXISTS (SELECT * FROM tb_selo t3 bdteste(# WHERE (t3.num BETWEEN t1.num AND t2.num AND t3.danificado = TRUE) bdteste(#OR (t3.num = t2.num + 1 AND t3.danificado = FALSE) bdteste(#OR (t3.num = t1.num - 1 AND t3.danificado = FALSE)); incio | fim ---+- 0 | 0 2 | 3 5 | 12 14 | 14 (4 registros) Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Resposta Automática de Ausência
Dear friend: Do you want buy better quality and low price goods, welcome to register on my company website you will get member price VIP price.here many brand electronic products,i belive you will love one of item on our store. (such as digital cameras,mobile,LCD TV,xbox, Laptops,DV,Mp4, GPS, and so on)。 Toshiba Satellite P105S9312 1. Member Price: 119 EUR Apple iMac 20 2.4 GHz D. Member Price: 480 EUR3GS iPhone 32GB Menber Price: 175 EURSony PMW EX1 EX30 XDCAM SBP-8 PHU-60K Combo PKG Member Price: 4460 EURSony PlayStation 3 Edition Bundle - Game console - black - 160 GB Member Price: 165 EUR Please to visit our homepage:w w w . modernflagship.c o m。 Kind Regards___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Ajuda em SQL 2
Seguindo o raciocínio do nobre colega Fábio Ebner, tenho um problema que não consegui resolver de forma que não degrade a performance... Tenho uma tabela com 11 milhões de registros. Existe um campo que é um contador numérico, e é uma AK da tabela (contador de transação). Pois bem... eu gostaria de um SELECT que retornasse apenas os números que não estão nesta tabela em um intervalo de 1 a 11.000.000 (que é o total de registros). Se eu delimitasse o máximo até 10, seria assim: [Registros na tabela] 1 2 3 -- não existe 4 5 6 8 7 -- não existe 9 10 (...) Até 10, os números que o select deveria retornar são: [Registros que não estão na tabela] 3 7 Hoje eu uso um trigger que alimenta uma tabela auxiliar cada vez que um registro é eliminado. Isto é rápido, mas gostaria de saber se existe uma forma de criar uma função ou algo parecido que não use trigger e não seja muito demorado (considerando 11 milhões de registros). Desculpem a impertinência, mas alguém tem alguma sugestão melhor? -- Tiago J. Adami Dois Vizinhos - Paraná - Brasil ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Resposta Automática de Ausência
Dear friend: Do you want buy better quality and low price goods, welcome to register on my company website you will get member price VIP price.here many brand electronic products,i belive you will love one of item on our store. (such as digital cameras,mobile,LCD TV,xbox, Laptops,DV,Mp4, GPS, and so on)。 Toshiba Satellite P105S9312 1. Member Price: 119 EUR Apple iMac 20 2.4 GHz D. Member Price: 480 EUR3GS iPhone 32GB Menber Price: 175 EURSony PMW EX1 EX30 XDCAM SBP-8 PHU-60K Combo PKG Member Price: 4460 EURSony PlayStation 3 Edition Bundle - Game console - black - 160 GB Member Price: 165 EUR Please to visit our homepage:w w w . modernflagship.c o m。 Kind Regards___ 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 em SQL 2
2009/7/30 Tiago Adami adam...@gmail.com: Seguindo o raciocínio do nobre colega Fábio Ebner, tenho um problema que não consegui resolver de forma que não degrade a performance... Tenho uma tabela com 11 milhões de registros. Existe um campo que é um contador numérico, e é uma AK da tabela (contador de transação). Pois bem... eu gostaria de um SELECT que retornasse apenas os números que não estão nesta tabela em um intervalo de 1 a 11.000.000 (que é o total de registros). Se eu delimitasse o máximo até 10, seria assim: [Registros na tabela] 1 2 3 -- não existe 4 5 6 8 7 -- não existe 9 10 (...) Até 10, os números que o select deveria retornar são: [Registros que não estão na tabela] 3 7 Hoje eu uso um trigger que alimenta uma tabela auxiliar cada vez que um registro é eliminado. Isto é rápido, mas gostaria de saber se existe uma forma de criar uma função ou algo parecido que não use trigger e não seja muito demorado (considerando 11 milhões de registros). Desculpem a impertinência, mas alguém tem alguma sugestão melhor? bdteste=# CREATE TEMP TABLE foo(num int); CREATE TABLE bdteste=# INSERT INTO foo VALUES (1),(2),(4),(5),(6),(8),(9),(10); INSERT 0 8 bdteste=# SELECT x FROM (SELECT generate_series(1,10)) AS f(x) LEFT OUTER JOIN foo ON (f.x = num) WHERE num IS NULL; x --- 3 7 (2 registros) ou ainda: bdteste=# SELECT generate_series(1,10) EXCEPT SELECT num FROM foo; generate_series - 3 7 (2 registros) Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Calculo de horas na query de auditoria
Ola Lista! Tenho que auditar uma base de dados, e estou com o seguinte problema: Como fazer uma query para o calculo (diferença entre entrada e saida do usuario) data e hora de entrada e de saida do usuario no sistema conforme modelagem abaixo? Desenvolver uma Store Procedure seria a melhor solucao ? Segue estrutura exemplo da base de dados, abaixo: -- Versao do PostgreSQL SELECT VERSION(); PostgreSQL 8.3.0 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 -- Estrutura da Tabela tb_log_acessos id_acesso integer not null default nextval('tb_log_acessos_id_acesso_seq'::regclass) fk_usuario integer login character varying(77) not null fk_cliente integer datatimestamp without time zone default now() tipocharacter(1) Índices: tb_log_acessos_pkey PRIMARY KEY, btree (id_acesso) Restrições de verificação: define_entrada_saida CHECK (tipo = ANY (ARRAY['E'::bpchar, 'S'::bpchar])) Restrições de chave estrangeira: tb_log_acessos_fk_cliente_fkey FOREIGN KEY (fk_cliente) REFERENCES tb_clientes(id_cliente) ON DELETE RESTRICT tb_log_acessos_fk_usuario_fkey FOREIGN KEY (fk_usuario) REFERENCES tb_usuarios(id_usuario) ON DELETE SET NULL -- listagem dos dados SELECT * FROM tb_log_acessos; id_acesso | fk_usuario | login | fk_cliente | data | tipo 10312 1 bug 1 01/06/2007 03:29:28 E 10315 1 bug 1 01/06/2007 03:31:32 S 74929 1 bug 1 01/10/2007 02:59:02 E 74930 1 bug 1 01/10/2007 02:59:35 S 40171 1 bug 1 02/08/2007 10:44:37 E 40172 1 bug 1 02/08/2007 10:48:09 S 24340 1 bug 1 03/07/2007 03:30:01 E 24344 1 bug 1 03/07/2007 03:32:44 S 24345 1 bug 1 03/07/2007 03:33:06 E Cordialmente, Emerson Hermann ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Resposta Automática de Ausência
Dear friend: Do you want buy better quality and low price goods, welcome to register on my company website you will get member price VIP price.here many brand electronic products,i belive you will love one of item on our store. (such as digital cameras,mobile,LCD TV,xbox, Laptops,DV,Mp4, GPS, and so on)。 Toshiba Satellite P105S9312 1. Member Price: 119 EUR Apple iMac 20 2.4 GHz D. Member Price: 480 EUR3GS iPhone 32GB Menber Price: 175 EURSony PMW EX1 EX30 XDCAM SBP-8 PHU-60K Combo PKG Member Price: 4460 EURSony PlayStation 3 Edition Bundle - Game console - black - 160 GB Member Price: 165 EUR Please to visit our homepage:w w w . modernflagship.c o m。 Kind Regards___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Calculo de horas na query de auditoria
2009/7/30 emerson hermann emersonherm...@gmail.com: Ola Lista! Tenho que auditar uma base de dados, e estou com o seguinte problema: Como fazer uma query para o calculo (diferença entre entrada e saida do usuario) data e hora de entrada e de saida do usuario no sistema conforme modelagem abaixo? Desenvolver uma Store Procedure seria a melhor solucao ? Segue estrutura exemplo da base de dados, abaixo: -- Versao do PostgreSQL SELECT VERSION(); PostgreSQL 8.3.0 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 -- Estrutura da Tabela tb_log_acessos id_acesso integer not null default nextval('tb_log_acessos_id_acesso_seq'::regclass) fk_usuario integer login character varying(77) not null fk_cliente integer data timestamp without time zone default now() tipo character(1) Índices: tb_log_acessos_pkey PRIMARY KEY, btree (id_acesso) Restrições de verificação: define_entrada_saida CHECK (tipo = ANY (ARRAY['E'::bpchar, 'S'::bpchar])) Restrições de chave estrangeira: tb_log_acessos_fk_cliente_fkey FOREIGN KEY (fk_cliente) REFERENCES tb_clientes(id_cliente) ON DELETE RESTRICT tb_log_acessos_fk_usuario_fkey FOREIGN KEY (fk_usuario) REFERENCES tb_usuarios(id_usuario) ON DELETE SET NULL -- listagem dos dados SELECT * FROM tb_log_acessos; id_acesso | fk_usuario | login | fk_cliente | data | tipo 10312 1 bug 1 01/06/2007 03:29:28 E 10315 1 bug 1 01/06/2007 03:31:32 S 74929 1 bug 1 01/10/2007 02:59:02 E 74930 1 bug 1 01/10/2007 02:59:35 S 40171 1 bug 1 02/08/2007 10:44:37 E 40172 1 bug 1 02/08/2007 10:48:09 S 24340 1 bug 1 03/07/2007 03:30:01 E 24344 1 bug 1 03/07/2007 03:32:44 S 24345 1 bug 1 03/07/2007 03:33:06 E Talvez algo do tipo: SELECT *,age(la2.data,la1.data) FROM tb_log_acessos la1 JOIN tb_log_acessos la2 ON (la1.fk_usuario = la2.fk_usuario) WHERE la1.tipo = 'E' AND la2.tipo = 'S' AND la1.data = (SELECT max(la3.data) FROM tb_log_acessos la3 WHERE la3.data la2.data AND la3.tipo = 'E'); Pelos dados apresentados não foi possível depreender quais atributos usar no critério da junção. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Resposta Automática de Ausência
Dear friend: Do you want buy better quality and low price goods, welcome to register on my company website you will get member price VIP price.here many brand electronic products,i belive you will love one of item on our store. (such as digital cameras,mobile,LCD TV,xbox, Laptops,DV,Mp4, GPS, and so on)。 Toshiba Satellite P105S9312 1. Member Price: 119 EUR Apple iMac 20 2.4 GHz D. Member Price: 480 EUR3GS iPhone 32GB Menber Price: 175 EURSony PMW EX1 EX30 XDCAM SBP-8 PHU-60K Combo PKG Member Price: 4460 EURSony PlayStation 3 Edition Bundle - Game console - black - 160 GB Member Price: 165 EUR Please to visit our homepage:w w w . modernflagship.c o m。 Kind Regards___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Oracle com postgre
2009/7/30 menkauren menkau...@gmail.com: Boa noite. Alguem sabe como conectar o Postgre no Oracle, quero que os dados de algumas tabelas no oracle possam ser vistos e atualizados dentro do postgre, como se fosse uma tabela dinamica, tem como fazer isso?? DBI-Link. http://pgfoundry.org/projects/dbi-link/ Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral