[pgbr-geral] Streaming Replication com PITR no Servidor Slave

2013-07-05 Thread Eurides Baptistella
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

2013-07-05 Thread Flavio Henrique Araque Gurgel


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

2013-07-05 Thread Marcelo da Silva
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

2013-07-05 Thread Flavio Henrique Araque Gurgel

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

2013-07-05 Thread Claudio Bezerra Leopoldino
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

2013-07-05 Thread 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

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

2013-07-05 Thread Flavio Henrique Araque Gurgel


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-07-05 Thread Matheus de Oliveira
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

2013-07-05 Thread Claudio Bezerra Leopoldino

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-07-05 Thread Bruno Silva
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

2013-07-05 Thread Marcelo da Silva
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