[pgbr-geral] Streaming Replication com PITR no Servidor Slave
Desculpe pessoal mas não estou mais recebendo os e-mails da lista, o último que recebi foi no dia 08/06/2013, vou tentar consertar isso... Quanto as informações, obrigado pelas respostas, apenas uma dúvida: Considerando utilizar o pg_basebackup no servidor Slave, eu não consigo realizar backups incrementais correto? nesse caso o pg_basebackup seria uma espécie de dump mesmo? *-- Eurides V. Baptistella **E-mail:* eurides.baptiste...@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] Streaming Replication com PITR no Servidor Slave
Em 05-07-2013 08:10, Eurides Baptistella escreveu: Desculpe pessoal mas não estou mais recebendo os e-mails da lista, o último que recebi foi no dia 08/06/2013, vou tentar consertar isso... Quanto as informações, obrigado pelas respostas, apenas uma dúvida: Considerando utilizar o pg_basebackup no servidor Slave, eu não consigo realizar backups incrementais correto? nesse caso o pg_basebackup seria uma espécie de dump mesmo? Não, o pg_basebackup é um backup inicial que pode ser usado para PITR ou streaming replication. Eu nunca replicação em cascata, não sei como daria pra lidar com archives no servidor escravo. Como estão na mesma linha de tempo, acho que você pode pegar os logs de transação arquivados pelo mestre sem problemas numa restauração. []s __ Flavio Henrique A. Gurgel Líder de Projetos Especiais Consultoria, Projetos & Treinamentos 4LINUX Tel1: +55-11.2125-4747 ou 2125-4748 www.4linux.com.br email: fla...@4linux.com.br __ FREE SOFTWARE SOLUTIONS ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Duvida básica LEFT JOIN x NOT IN
Qual seria o mais eficiente ? SELECT A.CAMPOS FROM TABELA_A A LEFT JOIN TABELA_B B ON(B.CODIGO = A.CODIGO) WHERE (B.CAMPO IS NULL) ou SELECT A.CAMPOS FROM TABEL_A A WHERE (A.CODIGO NOT IN(SELECT CODIGO FROM TABELA_B)) -- Marcelo Silva Desenvolvedor Delphi / PHP My Postgres database Cel.: (11) 99693-4251 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvida básica LEFT JOIN x NOT IN
Em 05-07-2013 14:25, Marcelo da Silva escreveu: Qual seria o mais eficiente ? SELECT A.CAMPOS FROM TABELA_A A LEFT JOIN TABELA_B B ON(B.CODIGO = A.CODIGO) WHERE (B.CAMPO IS NULL) ou SELECT A.CAMPOS FROM TABEL_A A WHERE (A.CODIGO NOT IN(SELECT CODIGO FROM TABELA_B)) Depende do tamanho das tabelas, índices, distribuição de dados, etc. EXPLAIN ANALYZE nelas e você saberá. []s __ Flavio Henrique A. Gurgel Líder de Projetos Especiais Consultoria, Projetos & Treinamentos 4LINUX Tel1: +55-11.2125-4747 ou 2125-4748 www.4linux.com.br email: fla...@4linux.com.br __ FREE SOFTWARE SOLUTIONS ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvida básica LEFT JOIN x NOT IN
Não depende apenas da consulta. Depende dos dados armazenados e estatísticas no seu servidor. Peço que use explain e noso envie o reultado: EXPLAIN SELECT A.CAMPOS FROM TABELA_A A LEFT JOIN TABELA_B B ON(B.CODIGO = A.CODIGO) WHERE (B.CAMPO IS NULL) e EXPLAIN SELECT A.CAMPOS FROM TABEL_A A WHERE (A.CODIGO NOT IN(SELECT CODIGO FROM TABELA_B)) Cordialmente, Cláudio Leopoldino postgresqlbr.blogspot.com/ = De: Marcelo da Silva Para: Comunidade PostgreSQL Brasileira Enviadas: Sexta-feira, 5 de Julho de 2013 14:25 Assunto: [pgbr-geral] Duvida básica LEFT JOIN x NOT IN Qual seria o mais eficiente ? SELECT A.CAMPOS FROM TABELA_A A LEFT JOIN TABELA_B B ON(B.CODIGO = A.CODIGO) WHERE (B.CAMPO IS NULL) ou SELECT A.CAMPOS FROM TABEL_A A WHERE (A.CODIGO NOT IN(SELECT CODIGO FROM TABELA_B)) -- Marcelo Silva Desenvolvedor Delphi / PHP My Postgres database Cel.: (11) 99693-4251 ___ 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] Duvida básica LEFT JOIN x NOT IN
Tempo os seguintes resultados: OPCAO A explain select a.* from mv_servicos_balcao a left join mv_servicos_print b on(cod_key_balcao = a.cod_key) where (b.cod_key is null) and(a.obs not in('C')); "Hash Right Join (cost=9510.11..17269.55 rows=1 width=136)" " Hash Cond: (b.cod_key_balcao = a.cod_key)" " Filter: (b.cod_key IS NULL)" " -> Seq Scan on mv_servicos_print b (cost=0.00..3746.55 rows=213355 width=8)" " -> Hash (cost=7913.20..7913.20 rows=127753 width=136)" "-> Seq Scan on mv_servicos_balcao a (cost=0.00..7913.20 rows=127753 width=136)" " Filter: (obs <> 'C'::bpchar)" OPCAO B explain select a.* from mv_servicos_balcao a where (a.obs not in('C')) and(a.cod_key not in(select cod_key_balcao from mv_servicos_print)) "Seq Scan on mv_servicos_balcao a (cost=4279.94..12516.98 rows=63876 width=136)" " Filter: ((obs <> 'C'::bpchar) AND (NOT (hashed SubPlan 1)))" " SubPlan 1" "-> Seq Scan on mv_servicos_print (cost=0.00..3746.55 rows=213355 width=4)" Vou ser sincero... não sei fazer a leitura do explain, mas pelo que vi a segunda opção se mostrou mais eficiente, haja visto que sem o explain temos os seguintes valores em ms(milisegundos) OPCAO A = 571 rows e 496ms OPCAO B = 571 rows e 300ms Mito detonado ? rsrsrs Em 5 de julho de 2013 14:31, Claudio Bezerra Leopoldino < claudiob...@yahoo.com.br> escreveu: > Não depende apenas da consulta. Depende dos dados armazenados e > estatísticas no seu servidor. > > Peço que use explain e noso envie o reultado: > > EXPLAIN SELECT A.CAMPOS FROM TABELA_A A > LEFT JOIN TABELA_B B ON(B.CODIGO = A.CODIGO) > WHERE (B.CAMPO IS NULL) > > e > > EXPLAIN SELECT A.CAMPOS FROM TABEL_A A > > WHERE (A.CODIGO NOT IN(SELECT CODIGO FROM TABELA_B)) > > Cordialmente, > > Cláudio Leopoldino > postgresqlbr.blogspot.com/ > = > -- > *De:* Marcelo da Silva > *Para:* Comunidade PostgreSQL Brasileira < > pgbr-geral@listas.postgresql.org.br> > *Enviadas:* Sexta-feira, 5 de Julho de 2013 14:25 > *Assunto:* [pgbr-geral] Duvida básica LEFT JOIN x NOT IN > > Qual seria o mais eficiente ? > > SELECT A.CAMPOS FROM TABELA_A A > LEFT JOIN TABELA_B B ON(B.CODIGO = A.CODIGO) > WHERE (B.CAMPO IS NULL) > > ou > > SELECT A.CAMPOS FROM TABEL_A A > WHERE (A.CODIGO NOT IN(SELECT CODIGO FROM TABELA_B)) > > > -- > Marcelo Silva > > Desenvolvedor Delphi / PHP > My Postgres database > Cel.: (11) 99693-4251 > > ___ > 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 > > -- Marcelo Silva Desenvolvedor Delphi / PHP My Postgres database Cel.: (11) 99693-4251 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvida básica LEFT JOIN x NOT IN
Em 05-07-2013 14:54, Marcelo da Silva escreveu: Tempo os seguintes resultados: OPCAO A explain select a.* from mv_servicos_balcao a left join mv_servicos_print b on(cod_key_balcao = a.cod_key) where (b.cod_key is null) and(a.obs not in('C')); "Hash Right Join (cost=9510.11..17269.55 rows=1 width=136)" " Hash Cond: (b.cod_key_balcao = a.cod_key)" " Filter: (b.cod_key IS NULL)" " -> Seq Scan on mv_servicos_print b (cost=0.00..3746.55 rows=213355 width=8)" " -> Hash (cost=7913.20..7913.20 rows=127753 width=136)" "-> Seq Scan on mv_servicos_balcao a (cost=0.00..7913.20 rows=127753 width=136)" " Filter: (obs <> 'C'::bpchar)" OPCAO B explain select a.* from mv_servicos_balcao a where (a.obs not in('C')) and(a.cod_key not in(select cod_key_balcao from mv_servicos_print)) "Seq Scan on mv_servicos_balcao a (cost=4279.94..12516.98 rows=63876 width=136)" " Filter: ((obs <> 'C'::bpchar) AND (NOT (hashed SubPlan 1)))" " SubPlan 1" "-> Seq Scan on mv_servicos_print (cost=0.00..3746.55 rows=213355 width=4)" Vou ser sincero... não sei fazer a leitura do explain, mas pelo que vi a segunda opção se mostrou mais eficiente, haja visto que sem o explain temos os seguintes valores em ms(milisegundos) OPCAO A = 571 rows e 496ms OPCAO B = 571 rows e 300ms Mito detonado ? rsrsrs Não só o tempo foi menor como o custo total da consulta também foi (4279 versus 9510). Logo, fique com a opção B. Note que suas tabelas têm poucas linhas, nenhum índice foi utilizado. Considere criar índice (se já não houver) na coluna cod_key da tabela mv_servicos_balcao. Todavia, dependendo da quantidade de resultados dessa tabela em relação ao tamanho total dela, pode ser que o índice nunca seja utilizado. Crie-o (se já não houver) e teste novamente. []s __ Flavio Henrique A. Gurgel Líder de Projetos Especiais Consultoria, Projetos & Treinamentos 4LINUX Tel1: +55-11.2125-4747 ou 2125-4748 www.4linux.com.br email: fla...@4linux.com.br __ FREE SOFTWARE SOLUTIONS ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvida básica LEFT JOIN x NOT IN
2013/7/5 Marcelo da Silva > Tempo os seguintes resultados: > > OPCAO A > > explain select a.* from mv_servicos_balcao a > left join mv_servicos_print b on(cod_key_balcao = a.cod_key) > where (b.cod_key is null) > and(a.obs not in('C')); > > "Hash Right Join (cost=9510.11..17269.55 rows=1 width=136)" > " Hash Cond: (b.cod_key_balcao = a.cod_key)" > " Filter: (b.cod_key IS NULL)" > " -> Seq Scan on mv_servicos_print b (cost=0.00..3746.55 rows=213355 > width=8)" > " -> Hash (cost=7913.20..7913.20 rows=127753 width=136)" > "-> Seq Scan on mv_servicos_balcao a (cost=0.00..7913.20 > rows=127753 width=136)" > " Filter: (obs <> 'C'::bpchar)" > > > OPCAO B > > explain select a.* from mv_servicos_balcao a > where (a.obs not in('C')) > and(a.cod_key not in(select cod_key_balcao from mv_servicos_print)) > > "Seq Scan on mv_servicos_balcao a (cost=4279.94..12516.98 rows=63876 > width=136)" > " Filter: ((obs <> 'C'::bpchar) AND (NOT (hashed SubPlan 1)))" > " SubPlan 1" > "-> Seq Scan on mv_servicos_print (cost=0.00..3746.55 rows=213355 > width=4)" > > > Vou ser sincero... não sei fazer a leitura do explain, mas pelo que vi a > segunda opção se mostrou mais eficiente, haja visto que sem o explain temos > os seguintes valores em ms(milisegundos) > > OPCAO A = 571 rows e 496ms > OPCAO B = 571 rows e 300ms > > Possível. Mas para termos mais certeza, faça o seguinte: VACUUM ANALYZE mv_servicos_balcao; VACUUM ANALYZE mv_servicos_print; Em seguida, rode novamente as queries, mas ao invés de apenas explain use: EXPLAIN (ANALYZE, BUFFERS) SELECT ... ; E rode pelo menos duas vezes cada para evitar efeitos de cache (o ideal seria executar um restart, mas 2 execuções deve dar um bom retorno). Mito detonado ? rsrsrs > > Qual o mito afinal? xD Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvida básica LEFT JOIN x NOT IN
Marcelo, a diferença de custos entre as duas opções não é tão significativa. Os planos de execução mostram que você está fazendo sequential scans. Neste caso, aconselho que tente indexar as colunas utilizadas nas junções e teste se há melhoria na sua consulta e depois disso peço que repita o teste do explain. Cordialmente, Cláudio Leopoldino postgresqlbr.blogspot.com/ = De: Marcelo da Silva Para: Claudio Bezerra Leopoldino ; Comunidade PostgreSQL Brasileira Enviadas: Sexta-feira, 5 de Julho de 2013 14:54 Assunto: Re: [pgbr-geral] Duvida básica LEFT JOIN x NOT IN Tempo os seguintes resultados: OPCAO A explain select a.* from mv_servicos_balcao a left join mv_servicos_print b on(cod_key_balcao = a.cod_key) where (b.cod_key is null) and(a.obs not in('C')); "Hash Right Join (cost=9510.11..17269.55 rows=1 width=136)" " Hash Cond: (b.cod_key_balcao = a.cod_key)" " Filter: (b.cod_key IS NULL)" " -> Seq Scan on mv_servicos_print b (cost=0.00..3746.55 rows=213355 width=8)" " -> Hash (cost=7913.20..7913.20 rows=127753 width=136)" " -> Seq Scan on mv_servicos_balcao a (cost=0.00..7913.20 rows=127753 width=136)" " Filter: (obs <> 'C'::bpchar)" OPCAO B explain select a.* from mv_servicos_balcao a where (a.obs not in('C')) and(a.cod_key not in(select cod_key_balcao from mv_servicos_print)) "Seq Scan on mv_servicos_balcao a (cost=4279.94..12516.98 rows=63876 width=136)" " Filter: ((obs <> 'C'::bpchar) AND (NOT (hashed SubPlan 1)))" " SubPlan 1" " -> Seq Scan on mv_servicos_print (cost=0.00..3746.55 rows=213355 width=4)" Vou ser sincero... não sei fazer a leitura do explain, mas pelo que vi a segunda opção se mostrou mais eficiente, haja visto que sem o explain temos os seguintes valores em ms(milisegundos) OPCAO A = 571 rows e 496ms OPCAO B = 571 rows e 300ms Mito detonado ? rsrsrs Em 5 de julho de 2013 14:31, Claudio Bezerra Leopoldino escreveu: Não depende apenas da consulta. Depende dos dados armazenados e estatísticas no seu servidor. > >Peço que use explain e noso envie o reultado: > > >EXPLAIN SELECT A.CAMPOS FROM TABELA_A A >LEFT JOIN TABELA_B B ON(B.CODIGO = A.CODIGO) >WHERE (B.CAMPO IS NULL) > > >e > > >EXPLAIN SELECT A.CAMPOS FROM TABEL_A A > > >WHERE (A.CODIGO NOT IN(SELECT CODIGO FROM TABELA_B)) > > >Cordialmente, > > >Cláudio Leopoldino >postgresqlbr.blogspot.com/ >= > > > > De: Marcelo da Silva >Para: Comunidade PostgreSQL Brasileira >Enviadas: Sexta-feira, 5 de Julho de 2013 14:25 >Assunto: [pgbr-geral] Duvida básica LEFT JOIN x NOT IN > > > >Qual seria o mais eficiente ? > > >SELECT A.CAMPOS FROM TABELA_A A >LEFT JOIN TABELA_B B ON(B.CODIGO = A.CODIGO) >WHERE (B.CAMPO IS NULL) > > >ou > > >SELECT A.CAMPOS FROM TABEL_A A > >WHERE (A.CODIGO NOT IN(SELECT CODIGO FROM TABELA_B)) > > > >-- > >Marcelo Silva > >Desenvolvedor Delphi / PHP >My Postgres database >Cel.: (11) 99693-4251 > >___ >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 > > -- Marcelo Silva Desenvolvedor Delphi / PHP My Postgres database Cel.: (11) 99693-4251___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Duvida básica LEFT JOIN x NOT IN
2013/7/5 Claudio Bezerra Leopoldino > EXPLAIN SELECT A.CAMPOS FROM TABEL_A A > > WHERE (A.CODIGO NOT IN(SELECT CODIGO FROM TABELA_B)) > Trocaria o NOT IN port NOT EXISTS Bruno E. A. Silva. Analista de Sistemas. Bacharel em Sistemas de Informação Pós-graduando em Gerência de Projetos Certified Scrum Master LPIC-1 SCJP, SE 6 Novell CLA / DCTS ECR DBA Postgres --- “A caixa dizia: Requer MS Windows ou superior. Então instalei Linux.” - Sábio Desconhecido "Alguns prestam serviço/consultoria de Qualidade, os outros vendem licenç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] Duvida básica LEFT JOIN x NOT IN
O NOT IN ainda está sendo o mais eficiente Em 5 de julho de 2013 16:07, Bruno Silva escreveu: > > 2013/7/5 Claudio Bezerra Leopoldino > >> EXPLAIN SELECT A.CAMPOS FROM TABEL_A A >> >> WHERE (A.CODIGO NOT IN(SELECT CODIGO FROM TABELA_B)) >> > > Trocaria o NOT IN port NOT EXISTS > > Bruno E. A. Silva. > Analista de Sistemas. > Bacharel em Sistemas de Informação > Pós-graduando em Gerência de Projetos > Certified Scrum Master > LPIC-1 > SCJP, SE 6 > Novell CLA / DCTS ECR > DBA Postgres > --- > “A caixa dizia: Requer MS Windows ou superior. Então instalei Linux.” - > Sábio Desconhecido > "Alguns prestam serviço/consultoria de Qualidade, os outros vendem > licença!" > > ___ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > -- Marcelo Silva Desenvolvedor Delphi / PHP My Postgres database Cel.: (11) 99693-4251 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral