[pgbr-geral] REF. Usuarios Conectados.
Ola Pessoal. Preciso controlar os usuarios conectados para nao permitir que usuario ja conectado acesse novamente. Penso em colocar um flag na tabela de usuario, quando entra no sistema e reseta o flag quando sai. Mas nao sei ate que ponto isto é seguro uma vez que o PC pode ser desligado sem sair do sistema,etc. Qual o melhor forma de controle, alguem tem mais dicas ?? Att, Paulo. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] REF. Usuarios Conectados.
Olá, Em 25 de março de 2010 09:46, VisualP Sistemas pa...@visualpsistemas.com.br escreveu: Ola Pessoal. Preciso controlar os usuarios conectados para nao permitir que usuario ja conectado acesse novamente. Explique melhor como isso vai funcionar? Você vai mapear o usuário de conexão do banco a uma tabela de usuários do seu sistema? Se sim, pode ter um campo boolean que recebe TRUE quando se conecta e FALSE quando se desconecta. Penso em colocar um flag na tabela de usuario, quando entra no sistema e reseta o flag quando sai. Mas nao sei ate que ponto isto é seguro uma vez que o PC pode ser desligado sem sair do sistema,etc. Se o pessoal for desligado você tem que finalizar a conexão e neste caso seta o campo boolean para FALSE. Qual o melhor forma de controle, alguem tem mais dicas ?? Att, Paulo. ___ 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] Guarda saida do Psql com erro.
Bom dia a Todos, Preciso que o psql guarde no log de execulcao todas as msg geradas, percebi o seguinte: postgres=# create database teste; CREATE DATABASE postgres=# \c teste; You are now connected to database teste. teste=# create table teste_psql( a int , b int); CREATE TABLE -bash-3.1$ cat teste.sql insert into teste_psql VALUES (1,1); ^ insert into teste_psql VALUES (1,2); insert into teste_psql VALUES (1,3); insert into teste_psql VALUES (1,4); insert into teste_psql VALUES (1,5); insert into teste_psql VALUES (1,a); ---so imprime o error na tela -bash-3.1$ psql -d teste -f teste.sql resultado.log psql:teste.sql:2: ERROR: syntax error at or near ^ LINE 1: ^ ^ psql:teste.sql:6: ERROR: column a does not exist LINE 1: insert into teste_psql VALUES (1,a); -bash-3.1$ cat resultado.log INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 teste=# select * from teste_psql; a | b ---+--- 1 | 1 1 | 3 1 | 4 1 | 5 (4 rows) existe a possibidade de exporta pro log tanto sucesso quanto a falha? Ats Paulo Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] doc
21782_87505_atividade_01.doc Description: MS-Word document ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] doc
É para corrigir??? hehehe -- blog: http://www.midstorm.org/~telles/ e-mail / jabber: fabio.tel...@gmail.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] doc
foi mal era pra mandar pra outra pessoa Em 25 de março de 2010 10:15, Fábio Telles Rodriguez fabio.tel...@gmail.com escreveu: É para corrigir??? hehehe -- blog: http://www.midstorm.org/~telles/ e-mail / jabber: fabio.tel...@gmail.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] Guarda saida do Psql com erro.
2010/3/25 paulo matadr saddon...@yahoo.com.br: Bom dia a Todos, Preciso que o psql guarde no log de execulcao todas as msg geradas, percebi o seguinte: postgres=# create database teste; CREATE DATABASE postgres=# \c teste; You are now connected to database teste. teste=# create table teste_psql( a int , b int); CREATE TABLE -bash-3.1$ cat teste.sql insert into teste_psql VALUES (1,1); ^ insert into teste_psql VALUES (1,2); insert into teste_psql VALUES (1,3); insert into teste_psql VALUES (1,4); insert into teste_psql VALUES (1,5); insert into teste_psql VALUES (1,a); ---so imprime o error na tela -bash-3.1$ psql -d teste -f teste.sql resultado.log psql:teste.sql:2: ERROR: syntax error at or near ^ LINE 1: ^ ^ psql:teste.sql:6: ERROR: column a does not exist LINE 1: insert into teste_psql VALUES (1,a); -bash-3.1$ cat resultado.log INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 teste=# select * from teste_psql; a | b ---+--- 1 | 1 1 | 3 1 | 4 1 | 5 (4 rows) existe a possibidade de exporta pro log tanto sucesso quanto a falha? Tente: psql -d teste -f teste.sql 2 resultado.log Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Guarda saida do Psql com erro.
2010/3/25 paulo matadr saddon...@yahoo.com.br Bom dia a Todos, Preciso que o psql guarde no log de execulcao todas as msg geradas, percebi o seguinte: postgres=# create database teste; CREATE DATABASE postgres=# \c teste; You are now connected to database teste. teste=# create table teste_psql( a int , b int); CREATE TABLE -bash-3.1$ cat teste.sql insert into teste_psql VALUES (1,1);^ insert into teste_psql VALUES (1,2); insert into teste_psql VALUES (1,3); insert into teste_psql VALUES (1,4); insert into teste_psql VALUES (1,5); insert into teste_psql VALUES (1,a); ---so imprime o error na tela -bash-3.1$ psql -d teste -f teste.sql resultado.log psql:teste.sql:2: ERROR: syntax error at or near ^ LINE 1: ^ ^ psql:teste.sql:6: ERROR: column a does not exist LINE 1: insert into teste_psql VALUES (1,a); -bash-3.1$ cat resultado.log INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 teste=# select * from teste_psql; a | b ---+--- 1 | 1 1 | 3 1 | 4 1 | 5 (4 rows) existe a possibidade de exporta pro log tanto sucesso quanto a falha? psql postgres -f teste.sql erros.txt 21 Ats Paulo -- Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/- Celebridadeshttp://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/celebridades/- Músicahttp://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/m%C3%BAsica/- Esporteshttp://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/esportes/ ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- 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] Select retornando diferenças
Boa dia a todos, Gostaria de uma ajuda. Alguem sabe se é possivel fazer uma consulta onde eu possa comparar dois registros de uma mesma tabela e retorne somente os atributos com valores diferentes, os que foram alterados. Desde já agradeço Marcelo -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select retornando diferenças
Em 25 de março de 2010 10:28, Marcelo Cardoso de Souza marceloc...@gmail.com escreveu: Boa dia a todos, Gostaria de uma ajuda. Alguem sabe se é possivel fazer uma consulta onde eu possa comparar dois registros de uma mesma tabela e retorne somente os atributos com valores diferentes, os que foram alterados. Tudo indica que é possível. Se você puder informar a estrutura da tabela e um exemplo do que deseja creio que possamos ajuda-lo. Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select retornando diferenças
Olá, Em 25 de março de 2010 10:28, Marcelo Cardoso de Souza marceloc...@gmail.com escreveu: Boa dia a todos, Gostaria de uma ajuda. Alguem sabe se é possivel fazer uma consulta onde eu possa comparar dois registros de uma mesma tabela e retorne somente os atributos com valores diferentes, os que foram alterados. Não entendi. Pode dar um exemplo para facilitar o entendimento? Desde já agradeço Marcelo -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ 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
Re: [pgbr-geral] Select retornando diferenças
Vamos ao exemplo. Estou fazendo um sistema de cadastro. O cliente exige que tenha um mecanismo onde ele possa validar as alterações feitas no cadastro. A cada alteração do usuario eu gero um novo registro na tabela e também possuo um atributo que indica o registro anterior a alteração que no caso eu chamo de id_anterior. Quando o gestor vai validar as alterações feitas pelos usuarios eu preciso mostrar o q foi alterado eu sei qual foi o ultimo registro e apartir dele posso chegar no anterior e assim por diante até o primeiro registro. Sei que poderiar fazer isso na programação, mas gostaria de fazer com sql. Segue uma estrutura basica dos atributos da tabela id_imovel id_endereco nm_imovel nu_antigo nu_inscricao_prefeitura nu_inscricao_incra id_matriz_contabil id_tipo_delimitacao area_disponivel de_complementar dt_alteracao fg_imovel_atual id_imovel_anterior Em 25 de março de 2010 10:34, JotaComm jota.c...@gmail.com escreveu: Olá, Em 25 de março de 2010 10:28, Marcelo Cardoso de Souza marceloc...@gmail.com escreveu: Boa dia a todos, Gostaria de uma ajuda. Alguem sabe se é possivel fazer uma consulta onde eu possa comparar dois registros de uma mesma tabela e retorne somente os atributos com valores diferentes, os que foram alterados. Não entendi. Pode dar um exemplo para facilitar o entendimento? Desde já agradeço Marcelo -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ 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 -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select retornando diferenças
Olá, Em 25 de março de 2010 10:54, Marcelo Cardoso de Souza marceloc...@gmail.com escreveu: Vamos ao exemplo. Estou fazendo um sistema de cadastro. O cliente exige que tenha um mecanismo onde ele possa validar as alterações feitas no cadastro. A cada alteração do usuario eu gero um novo registro na tabela e também possuo um atributo que indica o registro anterior a alteração que no caso eu chamo de id_anterior. Quando o gestor vai validar as alterações feitas pelos usuarios eu preciso mostrar o q foi alterado eu sei qual foi o ultimo registro e apartir dele posso chegar no anterior e assim por diante até o primeiro registro. Sei que poderiar fazer isso na programação, mas gostaria de fazer com sql. Segue uma estrutura basica dos atributos da tabela id_imovel id_endereco nm_imovel nu_antigo nu_inscricao_prefeitura nu_inscricao_incra id_matriz_contabil id_tipo_delimitacao area_disponivel de_complementar dt_alteracao fg_imovel_atual id_imovel_anterior Acho que resolve o seu problema: SELECT tabela1.*,tabela2.* FROM tabela1 JOIN tabela02 ON tabela1.codigo_anterior=tabela2.codigo; Em 25 de março de 2010 10:34, JotaComm jota.c...@gmail.com escreveu: Olá, Em 25 de março de 2010 10:28, Marcelo Cardoso de Souza marceloc...@gmail.com escreveu: Boa dia a todos, Gostaria de uma ajuda. Alguem sabe se é possivel fazer uma consulta onde eu possa comparar dois registros de uma mesma tabela e retorne somente os atributos com valores diferentes, os que foram alterados. Não entendi. Pode dar um exemplo para facilitar o entendimento? Desde já agradeço Marcelo -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ 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 -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ 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
Re: [pgbr-geral] Problemas ao usar o psql(Lívio Si queira)
Olá JotaComm. O Postgres está rodando e consigo utilizá-lo somente pelo SQL Shell(psql) que vem no arquivo .bin Resultado do comando /etc/init.d/postgresql status: pg_ctl: server is running (PID: 2739) /opt/PostgreSQL/8.4/bin/postgres -D /opt/PostgreSQL/8.4/data Prefiro utilizar o Console pq ele aceita o auto-completar e copiar/colar comandos e endereços. Instalei os pacotes necessários para a utilização no Console: postgresql-client-8.4_8.4.2-0ubuntu9.10_amd64 postgresql-client-common_101_all postgresql-common_101_all Os pacotes criam a pasta postgresql em /var/run mas toda vez que a máquina é reiniciada a pasta desaparece. Outra curiosidade, se eu criar a pasta postgresql e copiar e mudar as permissões dos arquivos .s.PGSQL.5432 e .s.PGSQL.5432.lock para a pasta postgresql, o psql não funciona. Acho mais interessante baixar o arquivo.bin pq ele vem com o PG Admin3, Documentação entre outras coisas, fora que não é necessário configurar o pg_hba.conf. Já tentei configurar o arquivo postgres.conf para buscar o arquivo .s.PGSQL.5432 na pasta /tmp e não tive sucesso. Atenciosamente. -- Lívio Siqueira Lima Licenciando em Geografia - Universidade Estadual do Ceará - UECE Técnico em Desenvolvimento de Software - Instituto Federal do Ceará - IFET - Campus Maracanaú Cursando Técnico em Informática - Instituto Federal do Ceará - IFET - Campus Maracanaú ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Res: Guarda saida do Psql com erro.
Bom dia Osvaldo Ai ele inverte: -bash-3.1$ psql -d teste -f teste.sql 2 resultado.log INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 -bash-3.1$ cat resultado.log psql:teste.sql:2: ERROR: syntax error at or near ^ LINE 1: ^ ^ psql:teste.sql:6: ERROR: column a does not exist LINE 1: insert into teste_psql VALUES (1,a); Tava precisando guarda tanto a falha quanto o sucesso. Ats De: Osvaldo Kussama osvaldo.kuss...@gmail.com Para: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Enviadas: Quinta-feira, 25 de Março de 2010 10:21:53 Assunto: Re: [pgbr-geral] Guarda saida do Psql com erro. 2010/3/25 paulo matadr saddon...@yahoo.com.br: Bom dia a Todos, Preciso que o psql guarde no log de execulcao todas as msg geradas, percebi o seguinte: postgres=# create database teste; CREATE DATABASE postgres=# \c teste; You are now connected to database teste. teste=# create table teste_psql( a int , b int); CREATE TABLE -bash-3.1$ cat teste.sql insert into teste_psql VALUES (1,1); ^ insert into teste_psql VALUES (1,2); insert into teste_psql VALUES (1,3); insert into teste_psql VALUES (1,4); insert into teste_psql VALUES (1,5); insert into teste_psql VALUES (1,a); ---so imprime o error na tela -bash-3.1$ psql -d teste -f teste.sql resultado.log psql:teste.sql:2: ERROR: syntax error at or near ^ LINE 1: ^ ^ psql:teste.sql:6: ERROR: column a does not exist LINE 1: insert into teste_psql VALUES (1,a); -bash-3.1$ cat resultado.log INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 teste=# select * from teste_psql; a | b ---+--- 1 | 1 1 | 3 1 | 4 1 | 5 (4 rows) existe a possibidade de exporta pro log tanto sucesso quanto a falha? Tente: psql -d teste -f teste.sql 2 resultado.log Osvaldo ___ 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 http://br.maisbuscados.yahoo.com___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Hash join Dvuida
Pessoal Tenho a seguinte duvida sobre um join entre duas tabelas.A tabela a possui aproximadamente 400.000 mil registros ao passo que a tabela b possui 20 milhoes de regitros, Os campos de juncao ambos sao pk e os campos do where possuem indices, porem verifico atraves do explain a montagem da estrutura hash esta muito custosa. Seria um problema do sql mal feito ou alguma dificuldade em alocar na memoria este hash table?.Segue o sql com o explain. select a.cnpj as cnpj_atual, cdmatriz_changed , data_abertura_changed, razao_social_changed , fantasia_changed, cdnatureza_changed, logradouro_changed, numero_changed, complemento_changed, cep_changed, bairro_changed, municipio_changed, uf_changed, cdsitcadastral_changed, cdmotivosituacao_changed, cdsitcadastralesp_changed, cnaes_changed, a.datahora_processamento as datahora_processamento_atual, b.datahora_processamento as datahora_processamento_rela, a.data_situacao as data_situcao_atual, b.data_situacao as data_situcao_rela, ramo_atividade, cod_ramo1, cod_ramo2, cod_ramo3, cod_ramo4, cod_ramo5, cod_ramo6, cod_ramo7, cod_ramo8, cod_ramo9, cod_ramo10, id from novo_cnpj_cnae.ecnpj_teste_repro a INNER join novo_cnpj_cnae.cnpj_rf b ON a.cnpj=b.cnpj where id 1*1 and id = (1*1 + 1) and a.flag_relacional=0 Hash Join (cost=2328.53..820035.33 rows=9582 width=143) Hash Cond: ((b.cnpj)::bpchar = a.cnpj) - Seq Scan on cnpj_rf b (cost=0.00..96.78 rows=19055578 width=27) - Hash (cost=2208.76..2208.76 rows=9582 width=131) - Index Scan using idx_ecnpj_teste_repro_id_2 on ecnpj_teste_repro a (cost=0.00..2208.76 rows=9582 width=131) Index Cond: ((id 1) AND (id = 2)) Filter: ((flag_processamento = 22) AND (flag_relacional = 0)) ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select retornando diferenças
Mas eu querio que mostre somente os atributos que foram alterados. Será q isso é possivel? Em 25 de março de 2010 11:03, JotaComm jota.c...@gmail.com escreveu: Olá, Em 25 de março de 2010 10:54, Marcelo Cardoso de Souza marceloc...@gmail.com escreveu: Vamos ao exemplo. Estou fazendo um sistema de cadastro. O cliente exige que tenha um mecanismo onde ele possa validar as alterações feitas no cadastro. A cada alteração do usuario eu gero um novo registro na tabela e também possuo um atributo que indica o registro anterior a alteração que no caso eu chamo de id_anterior. Quando o gestor vai validar as alterações feitas pelos usuarios eu preciso mostrar o q foi alterado eu sei qual foi o ultimo registro e apartir dele posso chegar no anterior e assim por diante até o primeiro registro. Sei que poderiar fazer isso na programação, mas gostaria de fazer com sql. Segue uma estrutura basica dos atributos da tabela id_imovel id_endereco nm_imovel nu_antigo nu_inscricao_prefeitura nu_inscricao_incra id_matriz_contabil id_tipo_delimitacao area_disponivel de_complementar dt_alteracao fg_imovel_atual id_imovel_anterior Acho que resolve o seu problema: SELECT tabela1.*,tabela2.* FROM tabela1 JOIN tabela02 ON tabela1.codigo_anterior=tabela2.codigo; Em 25 de março de 2010 10:34, JotaComm jota.c...@gmail.com escreveu: Olá, Em 25 de março de 2010 10:28, Marcelo Cardoso de Souza marceloc...@gmail.com escreveu: Boa dia a todos, Gostaria de uma ajuda. Alguem sabe se é possivel fazer uma consulta onde eu possa comparar dois registros de uma mesma tabela e retorne somente os atributos com valores diferentes, os que foram alterados. Não entendi. Pode dar um exemplo para facilitar o entendimento? Desde já agradeço Marcelo -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ 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 -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ 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 -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Particionamento x Herança
Boa Tarde, Em todos os foruns sobre particionamento, é dito que a implementação desta é feita através de herança. Que precisa criar uma trigger ou role pra redirecionar os registros para as tabelas filhas e etc. No entanto, com a herança, os dados acabam ficando nas duas tabelas, gerando redundância. É assim mesmo ? Acho que vou particionar sem herança, pois assim não gero duplicação de informações. Grata, Letícia -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28030200.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] Res: Guarda saida do Psql com erro.
Em 25 de março de 2010 11:10, paulo matadr saddon...@yahoo.com.br escreveu: Bom dia Osvaldo Ai ele inverte: -bash-3.1$ psql -d teste -f teste.sql 2 resultado.log INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 -bash-3.1$ cat resultado.log psql:teste.sql:2: ERROR: syntax error at or near ^ LINE 1: ^ ^ psql:teste.sql:6: ERROR: column a does not exist LINE 1: insert into teste_psql VALUES (1,a); Tava precisando guarda tanto a falha quanto o sucesso. Então siga a recomendação do Jota. psql -d teste -f teste.sql resultado.log 21 Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Particionamento x Herança
Olá, Em 25 de março de 2010 12:07, letgaude letga...@gmail.com escreveu: Boa Tarde, Em todos os foruns sobre particionamento, é dito que a implementação desta é feita através de herança. Que precisa criar uma trigger ou role pra redirecionar os registros para as tabelas filhas e etc. No entanto, com a herança, os dados acabam ficando nas duas tabelas, gerando redundância. É assim mesmo ? Acho que vou particionar sem herança, pois assim não gero duplicação de informações. Sim, é por herança. Você precisa de uma trigger ou rule e não role. Não vejo como ficarem dados duplicados, a menos que a trigger ou a rule esteja implementa de forma incorreta. Veja mais informações em: http://www.postgresql.org/docs/8.4/interactive/ddl-partitioning.html Grata, Letícia -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28030200.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 Atenciosamente -- 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] Postgres embarcado - Win XP
Bom dia pessoal, Acompanho a lista a muito tempo, e em todas as vezes que precisei, obtive respostas somente consultando o histórico desta, encontrando sábias soluções propostas pelos diversos colaboradores de peso que aqui visitam, ou mesmo habitam ... :) Há algum tempo estou com umas dúvidas a respeito do uso do postgresql em sistemas embarcados que eu desenvolvo. Vou tentar contextualizar para o melhor entendimento. Postgresql 8.4 (não faz muita diferença a versão, desde que suporte pelo menos a extensão postgis) PostGIS Windows XP 32 bit Na verdade o sistema é simples, poucas tabelas, algumas com suporte a dados geográficos, etc. O computador onde o meu sistema e o PG são instalado, é embarcado em um veículo, onde existem alguns sensores, e algumas interfaces para controlar e fazer a aquisição com esses sensores. Até ai tudo bem, a parte de integração e controle está tudo bem também. Porém atualmente nossa interface é simples, e não utilizo qualquer tipo de SGBD. Decidi pela escolha do Postgres por todas as caracteristicas do mesmo, e principalmente pela extensão postgis para trabalhar junto com mapserver, openlayers, etc... A versão beta do sistema, usando o PG está funcional, porém no setor de dev, ou seja, computadores quietinhos, parados, sem interferecias eletromagnéticas, etc. Como o sistema é embarcado, ocorrem alguns problemas, que conhecemos, porém as vezes provocam instabilidade do hardware, como por exemplo: - Interferencias eletromagneticas no sistema sensor (que trava todas as interfaces, e por sua vez, travando o windows). Interferencias essas que vem do próprio veículo, oriundas do sistema de ignição, alimentação, rádios transmissores para comunicação, etc. Apesar de tomarmos muitas preucações usando filtros, aterramentos, cabos blindados, etc, travamentos acontecem (mas sem muita frequencia). Ok, agora vem a pergunta: Como evitar que a base do PG corrompa quando esse travamento ocorrer - o que ja ocorreu umas vezes, quando o windows travou, devido ao erro nas placas de aquisições ? Gostaria de saber entao algumas dicas/regras para que a base do PG suporte um travamento inexperado do SO, mantendo integra a base, após um reinicio do sistema. Durante o uso do sistema, é feita inclusão/alteração em algumas tabelas, e a taxa máxima de incluão é de 1 Hz, em uma tabela contendo um campo de dados geográficos (1Hz é taxa de coleta de um GPS que vai embarcado também). Espero que tenham compreendido, e que possam me dar algumas dicas. Portanto deste já agradeço, e peço desculpas pela falta de sinteticidade neste email... :) []s Thiago Tiedtke dos Reis ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Hash join Dvuida
Em 25 de março de 2010 11:30, Tiago Valério tiagosvale...@gmail.comescreveu: corte - Seq Scan on cnpj_rf b (cost=0.00..96.78 rows=19055578 width=27) corte O seu maior custo está aqui, na juncao entre a tabela A e B pelos campos CNPJ... vc tem indice na tabela novo_cnpj_cnae.cnpj_rf pelo campo CNPJ Vc tem executado ANALYZE frequentemente??? -- Fabrízio de Royes Mello Blog sobre TI: 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] Hash join Dvuida
Tenho uma pk para este campo, no mais fiz um set random_page_cost '2', para ver se o otimizador faria a escolha do indice da pk. O analyze eu fiz antes de ser dado o explain. Grato pela ajuda Em 25 de março de 2010 13:03, Fabrízio de Royes Mello fabriziome...@gmail.com escreveu: Em 25 de março de 2010 11:30, Tiago Valério tiagosvale...@gmail.comescreveu: corte - Seq Scan on cnpj_rf b (cost=0.00..96.78 rows=19055578 width=27) corte O seu maior custo está aqui, na juncao entre a tabela A e B pelos campos CNPJ... vc tem indice na tabela novo_cnpj_cnae.cnpj_rf pelo campo CNPJ Vc tem executado ANALYZE frequentemente??? -- Fabrízio de Royes Mello Blog sobre TI: 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 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select retornando diferenças
Mas ai que vem a questão como saber quais campos mostrar, pois quero somente os que foram alterados. Em 25 de março de 2010 11:50, JotaComm jota.c...@gmail.com escreveu: Em 25 de março de 2010 11:39, Marcelo Cardoso de Souza marceloc...@gmail.com escreveu: Mas eu querio que mostre somente os atributos que foram alterados. Será q isso é possivel? Sim. È só fazer a restrição na hora de mostrar os campos no SELECT. Em 25 de março de 2010 11:03, JotaComm jota.c...@gmail.com escreveu: Olá, Em 25 de março de 2010 10:54, Marcelo Cardoso de Souza marceloc...@gmail.com escreveu: Vamos ao exemplo. Estou fazendo um sistema de cadastro. O cliente exige que tenha um mecanismo onde ele possa validar as alterações feitas no cadastro. A cada alteração do usuario eu gero um novo registro na tabela e também possuo um atributo que indica o registro anterior a alteração que no caso eu chamo de id_anterior. Quando o gestor vai validar as alterações feitas pelos usuarios eu preciso mostrar o q foi alterado eu sei qual foi o ultimo registro e apartir dele posso chegar no anterior e assim por diante até o primeiro registro. Sei que poderiar fazer isso na programação, mas gostaria de fazer com sql. Segue uma estrutura basica dos atributos da tabela id_imovel id_endereco nm_imovel nu_antigo nu_inscricao_prefeitura nu_inscricao_incra id_matriz_contabil id_tipo_delimitacao area_disponivel de_complementar dt_alteracao fg_imovel_atual id_imovel_anterior Acho que resolve o seu problema: SELECT tabela1.*,tabela2.* FROM tabela1 JOIN tabela02 ON tabela1.codigo_anterior=tabela2.codigo; Em 25 de março de 2010 10:34, JotaComm jota.c...@gmail.com escreveu: Olá, Em 25 de março de 2010 10:28, Marcelo Cardoso de Souza marceloc...@gmail.com escreveu: Boa dia a todos, Gostaria de uma ajuda. Alguem sabe se é possivel fazer uma consulta onde eu possa comparar dois registros de uma mesma tabela e retorne somente os atributos com valores diferentes, os que foram alterados. Não entendi. Pode dar um exemplo para facilitar o entendimento? Desde já agradeço Marcelo -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ 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 -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ 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 -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- 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 -- Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Hash join Dvuida
Olá, Em 25 de março de 2010 13:19, Tiago Valério tiagosvale...@gmail.comescreveu: Tenho uma pk para este campo, no mais fiz um set random_page_cost '2', para ver se o otimizador faria a escolha do indice da pk. Você conhece como funciona o random_page_cost para te-lo modificado? O analyze eu fiz antes de ser dado o explain. Grato pela ajuda Em 25 de março de 2010 13:03, Fabrízio de Royes Mello fabriziome...@gmail.com escreveu: Em 25 de março de 2010 11:30, Tiago Valério tiagosvale...@gmail.comescreveu: corte - Seq Scan on cnpj_rf b (cost=0.00..96.78 rows=19055578 width=27) corte O seu maior custo está aqui, na juncao entre a tabela A e B pelos campos CNPJ... vc tem indice na tabela novo_cnpj_cnae.cnpj_rf pelo campo CNPJ Vc tem executado ANALYZE frequentemente??? -- Fabrízio de Royes Mello Blog sobre TI: 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 ___ 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] instalação do postgresql 8.4
Pessoal, Tenho no meu pc o 8.4 e fui instalar na máquina de um cliente com XP a mesma versão que tenho na minha máquina. Tenho a instalação next, next, finish. Quando estava instalando me pediu a senha e sempre recebo a mensagem de que a senha é incorreta (para a conta do usuário postgres). O problema é que essa máquina nunca teve postgresql instalado. Tem Oracle e Firebird mas postgreSql não tem. E essa mensagem da a entender que nessa máquina já há uma versão do postgre ou conta para o usuário postgres Alguém sabe como resolver isso? PS: em todas as outras instalações que fiz, informava a senha (a minha escolha) e seguia sem problemas. -- []'s Leonardo Linux User #488650 Ubuntu User #27045 Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Particionamento x Herança
Desculpe o ROLE. Foi falta de atenção mesmo. Mas, voltando ao assunto. Eu ja tinha visto esse artigo e foi exatamente o exemplo q eu usei pra testar. E gerou dados na tabela measurement e na measurement_y2006m02, por exemplo. Mas ao criar as tabelas sem heranca isso nao aconteceu. JotaComm wrote: Olá, Em 25 de março de 2010 12:07, letgaude letga...@gmail.com escreveu: Boa Tarde, Em todos os foruns sobre particionamento, é dito que a implementação desta é feita através de herança. Que precisa criar uma trigger ou role pra redirecionar os registros para as tabelas filhas e etc. No entanto, com a herança, os dados acabam ficando nas duas tabelas, gerando redundância. É assim mesmo ? Acho que vou particionar sem herança, pois assim não gero duplicação de informações. Sim, é por herança. Você precisa de uma trigger ou rule e não role. Não vejo como ficarem dados duplicados, a menos que a trigger ou a rule esteja implementa de forma incorreta. Veja mais informações em: http://www.postgresql.org/docs/8.4/interactive/ddl-partitioning.html Grata, Letícia -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28030200.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 Atenciosamente -- 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 -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28031730.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] Particionamento x Herança
Olá, Em 25 de março de 2010 13:50, letgaude letga...@gmail.com escreveu: Desculpe o ROLE. Foi falta de atenção mesmo. Mas, voltando ao assunto. Eu ja tinha visto esse artigo e foi exatamente o exemplo q eu usei pra testar. E gerou dados na tabela measurement e na measurement_y2006m02, por exemplo. Mas ao criar as tabelas sem heranca isso nao aconteceu. Acho que tem alguma coisa errada na sua implementação. Como está o RETURN da sua função? Está com RETURN NULL ou RETURN NEW? JotaComm wrote: Olá, Em 25 de março de 2010 12:07, letgaude letga...@gmail.com escreveu: Boa Tarde, Em todos os foruns sobre particionamento, é dito que a implementação desta é feita através de herança. Que precisa criar uma trigger ou role pra redirecionar os registros para as tabelas filhas e etc. No entanto, com a herança, os dados acabam ficando nas duas tabelas, gerando redundância. É assim mesmo ? Acho que vou particionar sem herança, pois assim não gero duplicação de informações. Sim, é por herança. Você precisa de uma trigger ou rule e não role. Não vejo como ficarem dados duplicados, a menos que a trigger ou a rule esteja implementa de forma incorreta. Veja mais informações em: http://www.postgresql.org/docs/8.4/interactive/ddl-partitioning.html Grata, Letícia -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28030200.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 Atenciosamente -- 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 -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28031730.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 -- 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
Re: [pgbr-geral] Particionamento x Herança
Esta exatamente como no exemplo do link q você passou: --- TRIGGER CREATE TRIGGER insert_measurement_trigger BEFORE INSERT ON measurement FOR EACH ROW EXECUTE PROCEDURE measurement_insert_trigger(); --- FUNCTION CREATE OR REPLACE FUNCTION measurement_insert_trigger() RETURNS TRIGGER AS $$ BEGIN IF ( NEW.logdate = DATE '2006-02-01' AND NEW.logdate DATE '2006-03-01' ) THEN INSERT INTO measurement_y2006m02 VALUES (NEW.*); ELSE RAISE EXCEPTION 'Date out of range. Fix the measurement_insert_trigger() function!'; END IF; RETURN NULL; END; JotaComm wrote: Olá, Em 25 de março de 2010 13:50, letgaude letga...@gmail.com escreveu: Desculpe o ROLE. Foi falta de atenção mesmo. Mas, voltando ao assunto. Eu ja tinha visto esse artigo e foi exatamente o exemplo q eu usei pra testar. E gerou dados na tabela measurement e na measurement_y2006m02, por exemplo. Mas ao criar as tabelas sem heranca isso nao aconteceu. Acho que tem alguma coisa errada na sua implementação. Como está o RETURN da sua função? Está com RETURN NULL ou RETURN NEW? JotaComm wrote: Olá, Em 25 de março de 2010 12:07, letgaude letga...@gmail.com escreveu: Boa Tarde, Em todos os foruns sobre particionamento, é dito que a implementação desta é feita através de herança. Que precisa criar uma trigger ou role pra redirecionar os registros para as tabelas filhas e etc. No entanto, com a herança, os dados acabam ficando nas duas tabelas, gerando redundância. É assim mesmo ? Acho que vou particionar sem herança, pois assim não gero duplicação de informações. Sim, é por herança. Você precisa de uma trigger ou rule e não role. Não vejo como ficarem dados duplicados, a menos que a trigger ou a rule esteja implementa de forma incorreta. Veja mais informações em: http://www.postgresql.org/docs/8.4/interactive/ddl-partitioning.html Grata, Letícia -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28030200.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 Atenciosamente -- 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 -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28031730.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 -- 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 -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28031875.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] Particionamento x Herança
Olá, Em 25 de março de 2010 13:59, letgaude letga...@gmail.com escreveu: Esta exatamente como no exemplo do link q você passou: --- TRIGGER CREATE TRIGGER insert_measurement_trigger BEFORE INSERT ON measurement FOR EACH ROW EXECUTE PROCEDURE measurement_insert_trigger(); --- FUNCTION CREATE OR REPLACE FUNCTION measurement_insert_trigger() RETURNS TRIGGER AS $$ BEGIN IF ( NEW.logdate = DATE '2006-02-01' AND NEW.logdate DATE '2006-03-01' ) THEN INSERT INTO measurement_y2006m02 VALUES (NEW.*); ELSE RAISE EXCEPTION 'Date out of range. Fix the measurement_insert_trigger() function!'; END IF; RETURN NULL; END; Pode me mostrar um exemplo de que os dados estão duplicados? Como você fez o SELECT na tabela pai e na tabela filha. Você usou a clausula ONLY na tabela pai quando fez o SELECT? JotaComm wrote: Olá, Em 25 de março de 2010 13:50, letgaude letga...@gmail.com escreveu: Desculpe o ROLE. Foi falta de atenção mesmo. Mas, voltando ao assunto. Eu ja tinha visto esse artigo e foi exatamente o exemplo q eu usei pra testar. E gerou dados na tabela measurement e na measurement_y2006m02, por exemplo. Mas ao criar as tabelas sem heranca isso nao aconteceu. Acho que tem alguma coisa errada na sua implementação. Como está o RETURN da sua função? Está com RETURN NULL ou RETURN NEW? JotaComm wrote: Olá, Em 25 de março de 2010 12:07, letgaude letga...@gmail.com escreveu: Boa Tarde, Em todos os foruns sobre particionamento, é dito que a implementação desta é feita através de herança. Que precisa criar uma trigger ou role pra redirecionar os registros para as tabelas filhas e etc. No entanto, com a herança, os dados acabam ficando nas duas tabelas, gerando redundância. É assim mesmo ? Acho que vou particionar sem herança, pois assim não gero duplicação de informações. Sim, é por herança. Você precisa de uma trigger ou rule e não role. Não vejo como ficarem dados duplicados, a menos que a trigger ou a rule esteja implementa de forma incorreta. Veja mais informações em: http://www.postgresql.org/docs/8.4/interactive/ddl-partitioning.html Grata, Letícia -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28030200.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 Atenciosamente -- 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 -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28031730.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 -- 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 -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28031875.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 -- 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
Re: [pgbr-geral] Particionamento x Herança
Olá, Em 25 de março de 2010 14:09, letgaude letga...@gmail.com escreveu: Bom, eu fiz insert na tabela pai, ex: insert into measurement values (1, '2006-02-04', 1, 1); Depois simplesmente dei select nas duas tabelas e vi q o mesmo dado estava na tabela measurement e e na measurement_y2006m02. Na verdade não. Quando você faz um SELECT na tabela pai ele também busca os dados na tabela filha. Se você quer ver somente os dados do pai você deve fazer: SELECT * FROM ONLY pai; Mas essa seria a função da trigger/rule: antes de inserir o registro na tabela pai verificar a data e inserir so na filha. Quem deleta o dado da tabela pai ? Tem alguma configuração ? Outra trigger ? Obrigada. JotaComm wrote: Olá, Em 25 de março de 2010 13:59, letgaude letga...@gmail.com escreveu: Esta exatamente como no exemplo do link q você passou: --- TRIGGER CREATE TRIGGER insert_measurement_trigger BEFORE INSERT ON measurement FOR EACH ROW EXECUTE PROCEDURE measurement_insert_trigger(); --- FUNCTION CREATE OR REPLACE FUNCTION measurement_insert_trigger() RETURNS TRIGGER AS $$ BEGIN IF ( NEW.logdate = DATE '2006-02-01' AND NEW.logdate DATE '2006-03-01' ) THEN INSERT INTO measurement_y2006m02 VALUES (NEW.*); ELSE RAISE EXCEPTION 'Date out of range. Fix the measurement_insert_trigger() function!'; END IF; RETURN NULL; END; Pode me mostrar um exemplo de que os dados estão duplicados? Como você fez o SELECT na tabela pai e na tabela filha. Você usou a clausula ONLY na tabela pai quando fez o SELECT? JotaComm wrote: Olá, Em 25 de março de 2010 13:50, letgaude letga...@gmail.com escreveu: Desculpe o ROLE. Foi falta de atenção mesmo. Mas, voltando ao assunto. Eu ja tinha visto esse artigo e foi exatamente o exemplo q eu usei pra testar. E gerou dados na tabela measurement e na measurement_y2006m02, por exemplo. Mas ao criar as tabelas sem heranca isso nao aconteceu. Acho que tem alguma coisa errada na sua implementação. Como está o RETURN da sua função? Está com RETURN NULL ou RETURN NEW? JotaComm wrote: Olá, Em 25 de março de 2010 12:07, letgaude letga...@gmail.com escreveu: Boa Tarde, Em todos os foruns sobre particionamento, é dito que a implementação desta é feita através de herança. Que precisa criar uma trigger ou role pra redirecionar os registros para as tabelas filhas e etc. No entanto, com a herança, os dados acabam ficando nas duas tabelas, gerando redundância. É assim mesmo ? Acho que vou particionar sem herança, pois assim não gero duplicação de informações. Sim, é por herança. Você precisa de uma trigger ou rule e não role. Não vejo como ficarem dados duplicados, a menos que a trigger ou a rule esteja implementa de forma incorreta. Veja mais informações em: http://www.postgresql.org/docs/8.4/interactive/ddl-partitioning.html Grata, Letícia -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28030200.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 Atenciosamente -- 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 -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28031730.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 -- 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 -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28031875.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 -- JotaComm http://jotacomm.wordpress.com
Re: [pgbr-geral] Hash join Dvuida
Entao na verdade nao tenho um conhecimento aprofundado em qual momento usar, fiz uma leitura do artigo do Walter Cruz http://artigos.waltercruz.com/postgresql/otimizador/ coloquei o parametro somente para a sessao para fins de testes. Em 25 de março de 2010 13:43, JotaComm jota.c...@gmail.com escreveu: Olá, Em 25 de março de 2010 13:19, Tiago Valério tiagosvale...@gmail.comescreveu: Tenho uma pk para este campo, no mais fiz um set random_page_cost '2', para ver se o otimizador faria a escolha do indice da pk. Você conhece como funciona o random_page_cost para te-lo modificado? O analyze eu fiz antes de ser dado o explain. Grato pela ajuda Em 25 de março de 2010 13:03, Fabrízio de Royes Mello fabriziome...@gmail.com escreveu: Em 25 de março de 2010 11:30, Tiago Valério tiagosvale...@gmail.comescreveu: corte - Seq Scan on cnpj_rf b (cost=0.00..96.78 rows=19055578 width=27) corte O seu maior custo está aqui, na juncao entre a tabela A e B pelos campos CNPJ... vc tem indice na tabela novo_cnpj_cnae.cnpj_rf pelo campo CNPJ Vc tem executado ANALYZE frequentemente??? -- Fabrízio de Royes Mello Blog sobre TI: 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 ___ 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
Re: [pgbr-geral] Particionamento x Herança
Que massa !! Não vi esse detalhe em nenhum dos artigos que eu li. Mais uma pergunta: é indicado criar um tablespace para cada partição ? E os indices ? Devem ser particionados também ? Obrigada ! Letícia JotaComm wrote: Olá, Em 25 de março de 2010 14:09, letgaude letga...@gmail.com escreveu: Bom, eu fiz insert na tabela pai, ex: insert into measurement values (1, '2006-02-04', 1, 1); Depois simplesmente dei select nas duas tabelas e vi q o mesmo dado estava na tabela measurement e e na measurement_y2006m02. Na verdade não. Quando você faz um SELECT na tabela pai ele também busca os dados na tabela filha. Se você quer ver somente os dados do pai você deve fazer: SELECT * FROM ONLY pai; Mas essa seria a função da trigger/rule: antes de inserir o registro na tabela pai verificar a data e inserir so na filha. Quem deleta o dado da tabela pai ? Tem alguma configuração ? Outra trigger ? Obrigada. JotaComm wrote: Olá, Em 25 de março de 2010 13:59, letgaude letga...@gmail.com escreveu: Esta exatamente como no exemplo do link q você passou: --- TRIGGER CREATE TRIGGER insert_measurement_trigger BEFORE INSERT ON measurement FOR EACH ROW EXECUTE PROCEDURE measurement_insert_trigger(); --- FUNCTION CREATE OR REPLACE FUNCTION measurement_insert_trigger() RETURNS TRIGGER AS $$ BEGIN IF ( NEW.logdate = DATE '2006-02-01' AND NEW.logdate DATE '2006-03-01' ) THEN INSERT INTO measurement_y2006m02 VALUES (NEW.*); ELSE RAISE EXCEPTION 'Date out of range. Fix the measurement_insert_trigger() function!'; END IF; RETURN NULL; END; Pode me mostrar um exemplo de que os dados estão duplicados? Como você fez o SELECT na tabela pai e na tabela filha. Você usou a clausula ONLY na tabela pai quando fez o SELECT? JotaComm wrote: Olá, Em 25 de março de 2010 13:50, letgaude letga...@gmail.com escreveu: Desculpe o ROLE. Foi falta de atenção mesmo. Mas, voltando ao assunto. Eu ja tinha visto esse artigo e foi exatamente o exemplo q eu usei pra testar. E gerou dados na tabela measurement e na measurement_y2006m02, por exemplo. Mas ao criar as tabelas sem heranca isso nao aconteceu. Acho que tem alguma coisa errada na sua implementação. Como está o RETURN da sua função? Está com RETURN NULL ou RETURN NEW? JotaComm wrote: Olá, Em 25 de março de 2010 12:07, letgaude letga...@gmail.com escreveu: Boa Tarde, Em todos os foruns sobre particionamento, é dito que a implementação desta é feita através de herança. Que precisa criar uma trigger ou role pra redirecionar os registros para as tabelas filhas e etc. No entanto, com a herança, os dados acabam ficando nas duas tabelas, gerando redundância. É assim mesmo ? Acho que vou particionar sem herança, pois assim não gero duplicação de informações. Sim, é por herança. Você precisa de uma trigger ou rule e não role. Não vejo como ficarem dados duplicados, a menos que a trigger ou a rule esteja implementa de forma incorreta. Veja mais informações em: http://www.postgresql.org/docs/8.4/interactive/ddl-partitioning.html Grata, Letícia -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28030200.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 Atenciosamente -- 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 -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28031730.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 -- 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 -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28031875.html Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
Re: [pgbr-geral] Particionamento x Herança
Em 25 de março de 2010 14:45, letgaude letga...@gmail.com escreveu: Que massa !! Não vi esse detalhe em nenhum dos artigos que eu li. Mais uma pergunta: é indicado criar um tablespace para cada partição ? E os indices ? Devem ser particionados também ? Com relação a criar uma tablespace depende como é a sua estrutura física. Sem informações de como está a sua estrutura física não tem como dar maiores informações. Índices particionados? Como você particionaria um índice? Obrigada ! Letícia JotaComm wrote: Olá, Em 25 de março de 2010 14:09, letgaude letga...@gmail.com escreveu: Bom, eu fiz insert na tabela pai, ex: insert into measurement values (1, '2006-02-04', 1, 1); Depois simplesmente dei select nas duas tabelas e vi q o mesmo dado estava na tabela measurement e e na measurement_y2006m02. Na verdade não. Quando você faz um SELECT na tabela pai ele também busca os dados na tabela filha. Se você quer ver somente os dados do pai você deve fazer: SELECT * FROM ONLY pai; Mas essa seria a função da trigger/rule: antes de inserir o registro na tabela pai verificar a data e inserir so na filha. Quem deleta o dado da tabela pai ? Tem alguma configuração ? Outra trigger ? Obrigada. JotaComm wrote: Olá, Em 25 de março de 2010 13:59, letgaude letga...@gmail.com escreveu: Esta exatamente como no exemplo do link q você passou: --- TRIGGER CREATE TRIGGER insert_measurement_trigger BEFORE INSERT ON measurement FOR EACH ROW EXECUTE PROCEDURE measurement_insert_trigger(); --- FUNCTION CREATE OR REPLACE FUNCTION measurement_insert_trigger() RETURNS TRIGGER AS $$ BEGIN IF ( NEW.logdate = DATE '2006-02-01' AND NEW.logdate DATE '2006-03-01' ) THEN INSERT INTO measurement_y2006m02 VALUES (NEW.*); ELSE RAISE EXCEPTION 'Date out of range. Fix the measurement_insert_trigger() function!'; END IF; RETURN NULL; END; Pode me mostrar um exemplo de que os dados estão duplicados? Como você fez o SELECT na tabela pai e na tabela filha. Você usou a clausula ONLY na tabela pai quando fez o SELECT? JotaComm wrote: Olá, Em 25 de março de 2010 13:50, letgaude letga...@gmail.com escreveu: Desculpe o ROLE. Foi falta de atenção mesmo. Mas, voltando ao assunto. Eu ja tinha visto esse artigo e foi exatamente o exemplo q eu usei pra testar. E gerou dados na tabela measurement e na measurement_y2006m02, por exemplo. Mas ao criar as tabelas sem heranca isso nao aconteceu. Acho que tem alguma coisa errada na sua implementação. Como está o RETURN da sua função? Está com RETURN NULL ou RETURN NEW? JotaComm wrote: Olá, Em 25 de março de 2010 12:07, letgaude letga...@gmail.com escreveu: Boa Tarde, Em todos os foruns sobre particionamento, é dito que a implementação desta é feita através de herança. Que precisa criar uma trigger ou role pra redirecionar os registros para as tabelas filhas e etc. No entanto, com a herança, os dados acabam ficando nas duas tabelas, gerando redundância. É assim mesmo ? Acho que vou particionar sem herança, pois assim não gero duplicação de informações. Sim, é por herança. Você precisa de uma trigger ou rule e não role. Não vejo como ficarem dados duplicados, a menos que a trigger ou a rule esteja implementa de forma incorreta. Veja mais informações em: http://www.postgresql.org/docs/8.4/interactive/ddl-partitioning.html Grata, Letícia -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28030200.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 Atenciosamente -- 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 -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28031730.html Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br
[pgbr-geral] Res: Res: Guarda saida do Psql com erro.
Funciono Vlw. Ats De: Osvaldo Kussama osvaldo.kuss...@gmail.com Para: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Enviadas: Quinta-feira, 25 de Março de 2010 12:10:00 Assunto: Re: [pgbr-geral] Res: Guarda saida do Psql com erro. Em 25 de março de 2010 11:10, paulo matadr saddon...@yahoo.com.br escreveu: Bom dia Osvaldo Ai ele inverte: -bash-3.1$ psql -d teste -f teste.sql 2 resultado.log INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 -bash-3.1$ cat resultado.log psql:teste.sql:2: ERROR: syntax error at or near ^ LINE 1: ^ ^ psql:teste.sql:6: ERROR: column a does not exist LINE 1: insert into teste_psql VALUES (1,a); Tava precisando guarda tanto a falha quanto o sucesso. Então siga a recomendação do Jota. psql -d teste -f teste.sql resultado.log 21 Osvaldo ___ 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 http://br.maisbuscados.yahoo.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] Particionamento x Herança
Atualmente temos cerca de 50 tabelas, sendo que 3 delas possuem cerca de 734 milhoes de registros cada uma, outras com pouco mais de 600 mil e algumas outras tabelas de configuracao pequenas. Criamos um tablespace para dados e outro para indice. Essas tabelas gigantes é que serão particionadas. Por isso perguntei se com a tabela particionada também é indicado criar um tablespace para cada partição, pois assim teriamos um gerenciamento melhor sobre o espaço ocupado. Com relaçao ao particonamento de indices, perguntei por causa do SQL Server. Não sei se existe esse conceito no Postgres. Att., Letícia JotaComm wrote: Em 25 de março de 2010 14:45, letgaude letga...@gmail.com escreveu: Que massa !! Não vi esse detalhe em nenhum dos artigos que eu li. Mais uma pergunta: é indicado criar um tablespace para cada partição ? E os indices ? Devem ser particionados também ? Com relação a criar uma tablespace depende como é a sua estrutura física. Sem informações de como está a sua estrutura física não tem como dar maiores informações. Índices particionados? Como você particionaria um índice? Obrigada ! Letícia JotaComm wrote: Olá, Em 25 de março de 2010 14:09, letgaude letga...@gmail.com escreveu: Bom, eu fiz insert na tabela pai, ex: insert into measurement values (1, '2006-02-04', 1, 1); Depois simplesmente dei select nas duas tabelas e vi q o mesmo dado estava na tabela measurement e e na measurement_y2006m02. Na verdade não. Quando você faz um SELECT na tabela pai ele também busca os dados na tabela filha. Se você quer ver somente os dados do pai você deve fazer: SELECT * FROM ONLY pai; Mas essa seria a função da trigger/rule: antes de inserir o registro na tabela pai verificar a data e inserir so na filha. Quem deleta o dado da tabela pai ? Tem alguma configuração ? Outra trigger ? Obrigada. JotaComm wrote: Olá, Em 25 de março de 2010 13:59, letgaude letga...@gmail.com escreveu: Esta exatamente como no exemplo do link q você passou: --- TRIGGER CREATE TRIGGER insert_measurement_trigger BEFORE INSERT ON measurement FOR EACH ROW EXECUTE PROCEDURE measurement_insert_trigger(); --- FUNCTION CREATE OR REPLACE FUNCTION measurement_insert_trigger() RETURNS TRIGGER AS $$ BEGIN IF ( NEW.logdate = DATE '2006-02-01' AND NEW.logdate DATE '2006-03-01' ) THEN INSERT INTO measurement_y2006m02 VALUES (NEW.*); ELSE RAISE EXCEPTION 'Date out of range. Fix the measurement_insert_trigger() function!'; END IF; RETURN NULL; END; Pode me mostrar um exemplo de que os dados estão duplicados? Como você fez o SELECT na tabela pai e na tabela filha. Você usou a clausula ONLY na tabela pai quando fez o SELECT? JotaComm wrote: Olá, Em 25 de março de 2010 13:50, letgaude letga...@gmail.com escreveu: Desculpe o ROLE. Foi falta de atenção mesmo. Mas, voltando ao assunto. Eu ja tinha visto esse artigo e foi exatamente o exemplo q eu usei pra testar. E gerou dados na tabela measurement e na measurement_y2006m02, por exemplo. Mas ao criar as tabelas sem heranca isso nao aconteceu. Acho que tem alguma coisa errada na sua implementação. Como está o RETURN da sua função? Está com RETURN NULL ou RETURN NEW? JotaComm wrote: Olá, Em 25 de março de 2010 12:07, letgaude letga...@gmail.com escreveu: Boa Tarde, Em todos os foruns sobre particionamento, é dito que a implementação desta é feita através de herança. Que precisa criar uma trigger ou role pra redirecionar os registros para as tabelas filhas e etc. No entanto, com a herança, os dados acabam ficando nas duas tabelas, gerando redundância. É assim mesmo ? Acho que vou particionar sem herança, pois assim não gero duplicação de informações. Sim, é por herança. Você precisa de uma trigger ou rule e não role. Não vejo como ficarem dados duplicados, a menos que a trigger ou a rule esteja implementa de forma incorreta. Veja mais informações em: http://www.postgresql.org/docs/8.4/interactive/ddl-partitioning.html Grata, Letícia -- View this message in context: http://old.nabble.com/Particionamento-x-Heran%C3%A7a-tp28030200p28030200.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 Atenciosamente -- JotaComm
Re: [pgbr-geral] Particionamento x Herança
Olá, Em 25 de março de 2010 15:32, letgaude letga...@gmail.com escreveu: Atualmente temos cerca de 50 tabelas, sendo que 3 delas possuem cerca de 734 milhoes de registros cada uma, outras com pouco mais de 600 mil e algumas outras tabelas de configuracao pequenas. Criamos um tablespace para dados e outro para indice. Essas tabelas gigantes é que serão particionadas. Por isso perguntei se com a tabela particionada também é indicado criar um tablespace para cada partição, pois assim teriamos um gerenciamento melhor sobre o espaço ocupado. Com relaçao ao particonamento de indices, perguntei por causa do SQL Server. Não sei se existe esse conceito no Postgres. Tabelas grandes hein.. Merecem uma boa atenção. Um tablespace para dados e outro para índices me parece interessante. Agora tenho uma pergunta. Você tem mais de um disco? Storage? RAID? Para performance é necessário as informações acima, agora para distribuição lógica acho interessante sim o uso das tablespaces. No PostgreSQL não existe como particionar um índice. No SQL Server eu desconheço mas vou pesquisar sobre o assunto. Att., Letícia JotaComm wrote: Em 25 de março de 2010 14:45, letgaude letga...@gmail.com escreveu: Que massa !! Não vi esse detalhe em nenhum dos artigos que eu li. Mais uma pergunta: é indicado criar um tablespace para cada partição ? E os indices ? Devem ser particionados também ? Com relação a criar uma tablespace depende como é a sua estrutura física. Sem informações de como está a sua estrutura física não tem como dar maiores informações. Índices particionados? Como você particionaria um índice? Obrigada ! Letícia JotaComm wrote: Olá, Em 25 de março de 2010 14:09, letgaude letga...@gmail.com escreveu: Bom, eu fiz insert na tabela pai, ex: insert into measurement values (1, '2006-02-04', 1, 1); Depois simplesmente dei select nas duas tabelas e vi q o mesmo dado estava na tabela measurement e e na measurement_y2006m02. Na verdade não. Quando você faz um SELECT na tabela pai ele também busca os dados na tabela filha. Se você quer ver somente os dados do pai você deve fazer: SELECT * FROM ONLY pai; Mas essa seria a função da trigger/rule: antes de inserir o registro na tabela pai verificar a data e inserir so na filha. Quem deleta o dado da tabela pai ? Tem alguma configuração ? Outra trigger ? Obrigada. JotaComm wrote: Olá, Em 25 de março de 2010 13:59, letgaude letga...@gmail.com escreveu: Esta exatamente como no exemplo do link q você passou: --- TRIGGER CREATE TRIGGER insert_measurement_trigger BEFORE INSERT ON measurement FOR EACH ROW EXECUTE PROCEDURE measurement_insert_trigger(); --- FUNCTION CREATE OR REPLACE FUNCTION measurement_insert_trigger() RETURNS TRIGGER AS $$ BEGIN IF ( NEW.logdate = DATE '2006-02-01' AND NEW.logdate DATE '2006-03-01' ) THEN INSERT INTO measurement_y2006m02 VALUES (NEW.*); ELSE RAISE EXCEPTION 'Date out of range. Fix the measurement_insert_trigger() function!'; END IF; RETURN NULL; END; Pode me mostrar um exemplo de que os dados estão duplicados? Como você fez o SELECT na tabela pai e na tabela filha. Você usou a clausula ONLY na tabela pai quando fez o SELECT? JotaComm wrote: Olá, Em 25 de março de 2010 13:50, letgaude letga...@gmail.com escreveu: Desculpe o ROLE. Foi falta de atenção mesmo. Mas, voltando ao assunto. Eu ja tinha visto esse artigo e foi exatamente o exemplo q eu usei pra testar. E gerou dados na tabela measurement e na measurement_y2006m02, por exemplo. Mas ao criar as tabelas sem heranca isso nao aconteceu. Acho que tem alguma coisa errada na sua implementação. Como está o RETURN da sua função? Está com RETURN NULL ou RETURN NEW? JotaComm wrote: Olá, Em 25 de março de 2010 12:07, letgaude letga...@gmail.com escreveu: Boa Tarde, Em todos os foruns sobre particionamento, é dito que a implementação desta é feita através de herança. Que precisa criar uma trigger ou role pra redirecionar os registros para as tabelas filhas e etc. No entanto, com a herança, os dados acabam ficando nas duas tabelas, gerando redundância. É assim mesmo ? Acho que vou particionar sem herança, pois assim não gero duplicação de informações. Sim, é por herança. Você precisa de uma trigger ou rule e não role. Não vejo como ficarem dados duplicados, a menos que a trigger ou
Re: [pgbr-geral] Select retornando diferenças
Em 25 de março de 2010 13:43, Marcelo Cardoso de Souza marceloc...@gmail.com escreveu: Mas ai que vem a questão como saber quais campos mostrar, pois quero somente os que foram alterados. Talvez seja mais fácil verificar na própria aplicação mas se você deseja fazer na própria consulta use CASE. Por ex.: SELECT CASE WHEN nova.id_imovel = velha.id_imovel THEN NULL ELSE 'De ' || velha.id_imovel || ' para ' || nova.id_imovel END AS id_imovel, CASE WHEN nova.id_endereco = velha.id_endereco THEN NULL ELSE 'De ' || velha.id_endereco || ' para ' || nova.id_endereco END AS id_endereco, CASE WHEN nova.nm_imovel = velha.nm_imovel THEN NULL ELSE 'De ' || velha.nm_imovel || ' para ' || nova.nm_imovel END AS nm_imovel, ... CASE WHEN nova.de_complementar = velha.de_complementar THEN NULL ELSE 'De ' || velha.de_complementar || ' para ' || nova.de_complementar END AS de_complementar, nova.dt_alteracao FROM sua_tabela nova JOIN sua_tabela velha ON nova.id_imovel_anterior = velha.id_imovel; Osvaldo PS. Os campos não alterados conterão NULL. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Particionamento x Herança
Não temos um ambiente definitivo ainda para produção. A previsão é que tenhamos varios storages com 360 Gb no minimo cada um. Poderíamos então aloca-los da seguinte forma: Tabela Pai - na tablespace PRINCIPAL Tabela Filha1 na TABLESPACE1. Esta tabela é herança da tabela pai, portanto particionada. Seus indices estarão na TABLESPACE1 também. Logo, estarão particionados também. Correto ? :-) E assim faremos para as 3 tabelas. Uma tablespace para cada uma delas, alocadas fisicamente em storages diferentes. Um indice na mesma tablespace do dado é mais eficiente ? Grata, Letícia letgaude wrote: Atualmente temos cerca de 50 tabelas, sendo que 3 delas possuem cerca de 734 milhoes de registros cada uma, outras com pouco mais de 600 mil e algumas outras tabelas de configuracao pequenas. Criamos um tablespace para dados e outro para indice. Essas tabelas gigantes é que serão particionadas. Por isso perguntei se com a tabela particionada também é indicado criar um tablespace para cada partição, pois assim teriamos um gerenciamento melhor sobre o espaço ocupado. Com relaçao ao particonamento de indices, perguntei por causa do SQL Server. Não sei se existe esse conceito no Postgres. Att., Letícia JotaComm wrote: Em 25 de março de 2010 14:45, letgaude letga...@gmail.com escreveu: Que massa !! Não vi esse detalhe em nenhum dos artigos que eu li. Mais uma pergunta: é indicado criar um tablespace para cada partição ? E os indices ? Devem ser particionados também ? Com relação a criar uma tablespace depende como é a sua estrutura física. Sem informações de como está a sua estrutura física não tem como dar maiores informações. Índices particionados? Como você particionaria um índice? Obrigada ! Letícia JotaComm wrote: Olá, Em 25 de março de 2010 14:09, letgaude letga...@gmail.com escreveu: Bom, eu fiz insert na tabela pai, ex: insert into measurement values (1, '2006-02-04', 1, 1); Depois simplesmente dei select nas duas tabelas e vi q o mesmo dado estava na tabela measurement e e na measurement_y2006m02. Na verdade não. Quando você faz um SELECT na tabela pai ele também busca os dados na tabela filha. Se você quer ver somente os dados do pai você deve fazer: SELECT * FROM ONLY pai; Mas essa seria a função da trigger/rule: antes de inserir o registro na tabela pai verificar a data e inserir so na filha. Quem deleta o dado da tabela pai ? Tem alguma configuração ? Outra trigger ? Obrigada. JotaComm wrote: Olá, Em 25 de março de 2010 13:59, letgaude letga...@gmail.com escreveu: Esta exatamente como no exemplo do link q você passou: --- TRIGGER CREATE TRIGGER insert_measurement_trigger BEFORE INSERT ON measurement FOR EACH ROW EXECUTE PROCEDURE measurement_insert_trigger(); --- FUNCTION CREATE OR REPLACE FUNCTION measurement_insert_trigger() RETURNS TRIGGER AS $$ BEGIN IF ( NEW.logdate = DATE '2006-02-01' AND NEW.logdate DATE '2006-03-01' ) THEN INSERT INTO measurement_y2006m02 VALUES (NEW.*); ELSE RAISE EXCEPTION 'Date out of range. Fix the measurement_insert_trigger() function!'; END IF; RETURN NULL; END; Pode me mostrar um exemplo de que os dados estão duplicados? Como você fez o SELECT na tabela pai e na tabela filha. Você usou a clausula ONLY na tabela pai quando fez o SELECT? JotaComm wrote: Olá, Em 25 de março de 2010 13:50, letgaude letga...@gmail.com escreveu: Desculpe o ROLE. Foi falta de atenção mesmo. Mas, voltando ao assunto. Eu ja tinha visto esse artigo e foi exatamente o exemplo q eu usei pra testar. E gerou dados na tabela measurement e na measurement_y2006m02, por exemplo. Mas ao criar as tabelas sem heranca isso nao aconteceu. Acho que tem alguma coisa errada na sua implementação. Como está o RETURN da sua função? Está com RETURN NULL ou RETURN NEW? JotaComm wrote: Olá, Em 25 de março de 2010 12:07, letgaude letga...@gmail.com escreveu: Boa Tarde, Em todos os foruns sobre particionamento, é dito que a implementação desta é feita através de herança. Que precisa criar uma trigger ou role pra redirecionar os registros para as tabelas filhas e etc. No entanto, com a herança, os dados acabam ficando nas duas tabelas, gerando redundância. É assim mesmo ? Acho que vou particionar sem herança, pois assim não gero duplicação de informações. Sim, é por herança. Você precisa de uma trigger ou rule e não role. Não vejo como ficarem dados duplicados, a menos que a trigger ou a rule esteja implementa de forma incorreta. Veja
Re: [pgbr-geral] Particionamento x Herança
Em 25 de março de 2010 16:52, letgaude letga...@gmail.com escreveu: Não temos um ambiente definitivo ainda para produção. A previsão é que tenhamos varios storages com 360 Gb no minimo cada um. Poderíamos então aloca-los da seguinte forma: Tabela Pai - na tablespace PRINCIPAL Tabela Filha1 na TABLESPACE1. Esta tabela é herança da tabela pai, portanto particionada. Seus indices estarão na TABLESPACE1 também. Logo, estarão particionados também. Correto ? :-) E assim faremos para as 3 tabelas. Uma tablespace para cada uma delas, alocadas fisicamente em storages diferentes. Um indice na mesma tablespace do dado é mais eficiente ? Normalmente o índice em uma tablespace própria é mais eficiente. Mas como toda regra, pode ter exceção. No teu caso, para ter uma boa performance, consideraria colocar os índices em uma partição distinta (somente para os índices). Grata, Letícia Atenciosamente, -- André de Camargo Fernandes ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Postgres embarcado - Win XP
Olá Osvaldo, Obrigado pela indicação do WAL, examinarei a documentação e realizarei testes. Inicialmente, o sistema era Linux, porém o sensor e todos dispositivos de aquisição só funcionam em Windows ou Mac, então fico preso a isto. Mas mesmo assim valeu! []s Thiago Tiedtke dos Reis Em 25 de março de 2010 18:28, Osvaldo Kussama osvaldo.kuss...@gmail.comescreveu: Em 25 de março de 2010 12:28, Thiago Tiedtke dos Reis tied...@gmail.com escreveu: Bom dia pessoal, Acompanho a lista a muito tempo, e em todas as vezes que precisei, obtive respostas somente consultando o histórico desta, encontrando sábias soluções propostas pelos diversos colaboradores de peso que aqui visitam, ou mesmo habitam ... :) Há algum tempo estou com umas dúvidas a respeito do uso do postgresql em sistemas embarcados que eu desenvolvo. Vou tentar contextualizar para o melhor entendimento. Postgresql 8.4 (não faz muita diferença a versão, desde que suporte pelo menos a extensão postgis) PostGIS Windows XP 32 bit Na verdade o sistema é simples, poucas tabelas, algumas com suporte a dados geográficos, etc. O computador onde o meu sistema e o PG são instalado, é embarcado em um veículo, onde existem alguns sensores, e algumas interfaces para controlar e fazer a aquisição com esses sensores. Até ai tudo bem, a parte de integração e controle está tudo bem também. Porém atualmente nossa interface é simples, e não utilizo qualquer tipo de SGBD. Decidi pela escolha do Postgres por todas as caracteristicas do mesmo, e principalmente pela extensão postgis para trabalhar junto com mapserver, openlayers, etc... A versão beta do sistema, usando o PG está funcional, porém no setor de dev, ou seja, computadores quietinhos, parados, sem interferecias eletromagnéticas, etc. Como o sistema é embarcado, ocorrem alguns problemas, que conhecemos, porém as vezes provocam instabilidade do hardware, como por exemplo: - Interferencias eletromagneticas no sistema sensor (que trava todas as interfaces, e por sua vez, travando o windows). Interferencias essas que vem do próprio veículo, oriundas do sistema de ignição, alimentação, rádios transmissores para comunicação, etc. Apesar de tomarmos muitas preucações usando filtros, aterramentos, cabos blindados, etc, travamentos acontecem (mas sem muita frequencia). Ok, agora vem a pergunta: Como evitar que a base do PG corrompa quando esse travamento ocorrer - o que ja ocorreu umas vezes, quando o windows travou, devido ao erro nas placas de aquisições ? Gostaria de saber entao algumas dicas/regras para que a base do PG suporte um travamento inexperado do SO, mantendo integra a base, após um reinicio do sistema. Durante o uso do sistema, é feita inclusão/alteração em algumas tabelas, e a taxa máxima de incluão é de 1 Hz, em uma tabela contendo um campo de dados geográficos (1Hz é taxa de coleta de um GPS que vai embarcado também). Espero que tenham compreendido, e que possam me dar algumas dicas. Creio que o ponto principal seja: Não é possível trocar o sistema operacional para outro mais confiável? Dê uma lida no capítulo sobre WAL: http://www.postgresql.org/docs/current/interactive/wal.html talvez você possa minimizar suas perdas com uma boa configuraçã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 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 8.4
Em 25 de março de 2010 13:48, Leonardo Ribeiro leojribe...@gmail.com escreveu: Pessoal, Tenho no meu pc o 8.4 e fui instalar na máquina de um cliente com XP a mesma versão que tenho na minha máquina. Tenho a instalação next, next, finish. Quando estava instalando me pediu a senha e sempre recebo a mensagem de que a senha é incorreta (para a conta do usuário postgres). O problema é que essa máquina nunca teve postgresql instalado. Tem Oracle e Firebird mas postgreSql não tem. E essa mensagem da a entender que nessa máquina já há uma versão do postgre ou conta para o usuário postgres Alguém sabe como resolver isso? PS: em todas as outras instalações que fiz, informava a senha (a minha escolha) e seguia sem problemas. Verifique nas contas de usuário se existe uma conta do usuário postgres e remova. Se você está instalando em uma máquina dentro de um domínio, peça para o administrador da rede alterar a senha do usuário postgres no domínio e lhe informar. Nota: a minha experiência não aconselha a instalar servidores de banco de dados utilizando usuários de domínio. Prefira sempre uma instalação off-line, geralmente desconecto o cabo de rede e entro com um usuário administrador para instalar o PostgreSQL. Assim tudo é feito somente na máquina. -- TIAGO J. ADAMI http://www.adamiworks.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral