Re: [pgbr-geral] Uso de PostgreSQL em storage
Bom dia, Estou verificando a respeito de modelos de storage para armazenamento de sistema web e banco de dados PostgreSQL e MySQL. Tem muita literatura na Internet, a maioria diz respeito ao Oracle. Sugiro que leia um pouco antes e venha com perguntas mais específicas. Eu mesmo escrevi um artigo pra Revista PCCia número 100 (não tem online). Estou pesquisando tanto sobre modelos de storage convencional quanto modelos 3PAR que aparentam oferecer melhor performance. 3Par = Conto de fadas (opinião sincera). Algum dos colegas com mais experiência tem sugestão ou dica a respeito de modelo ou recurso que agrega benefício de performance? Melhor Performance - Violin Memory Melhor Custo - um monte de HD SATA (e seu emprego no ralo). []s Flavio Gurgel ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] consumo de memória
On 09-12-2014 13:02, Alessandro Lima wrote: Considerando max_connections = a + b, não entendi o que é a e b exemplo: tenho max_connections = 16 a = ? b = ? São variáveis. 'a' é a quantidade de conexões que executam manutenção simultaneamente. 'b' é a quantidade de conexões de aplicações. Sendo que a ⩽ 16, b ⩽ 16 e a soma de ambos é exatamente 16. -- Euler Taveira Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] RES: Replicação e ambiente complexo
Bom dia, O que você considera um ambiente complexo? Poderia nos dar mais detalhes? Na verdade eu sou apenas um entusiasta. Mas minha visão de ambiente complexo seria um ambiente com muitas conexões de acesso no banco. Tanto para alteração quanto para somente leitura e também tabelas com bastante registros. Como poderia ser proposto uma solução, por exemplo, para um banco como o banco do Brasil? (hipoteticamente é claro) com muitos acessos de leitura e também muitos acessos de escrita e, com um cadastro centralizado (os saldos das contas e os nomes dos correntistas teoricamente deveriam ser centralizados não é mesmo?). Seguindo no exemplo hipotético do banco, de tempos em tempos teria de se fazer uma fragmentação das tabelas de movimento, pois senão teríamos um inchaço muito grande com o passar do tempo. Li sobre a herança no postgresql, alguém pode citar de repente alguma experiência com esse recurso? Como ficam as chaves estrangeiras na herança? --- Achei interessante os links abaixo e a replicação por streaming é muito legal. Tenho uma dúvida em relação a ela que seria mais ou menos assim: Cliente faz uma operação de pagamento de um título e em seguida consulta o título novamente. No momento do pgto (operação de escrita), minha aplicação executa no servidor máster e na consulta (apenas leitura), minha aplicação consulta em um servidor slave. Pode ocorrer de fazer o pagamento do título e consultar em seguida e ainda não aparecer o pagamento? (pelo que vi pode sim, mas quanto tempo e onde pode ser configurado este tempo? Malefícios de deixar um time baixo?) Att. Márcio A. Sepp [1] - http://eulerto.blogspot.com.br/2010/11/replicacao-no-postgresql.html [2] - http://eulerto.blogspot.com.br/2010/11/hot-standby-e-streaming-replication.html ___ 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: Replicação e ambiente complexo
2014-12-10 16:13 GMT-02:00 Márcio A. Sepp mar...@zyontecnologia.com.br: Bom dia, O que você considera um ambiente complexo? Poderia nos dar mais detalhes? Na verdade eu sou apenas um entusiasta. Mas minha visão de ambiente complexo seria um ambiente com muitas conexões de acesso no banco. Tanto para alteração quanto para somente leitura e também tabelas com bastante registros. Como poderia ser proposto uma solução, por exemplo, para um banco como o banco do Brasil? (hipoteticamente é claro) com muitos acessos de leitura e também muitos acessos de escrita e, com um cadastro centralizado (os saldos das contas e os nomes dos correntistas teoricamente deveriam ser centralizados não é mesmo?). Não necessariamente, principalmente se for uma abordagem síncrona. Seguindo no exemplo hipotético do banco, de tempos em tempos teria de se fazer uma fragmentação das tabelas de movimento, pois senão teríamos um inchaço muito grande com o passar do tempo. Li sobre a herança no postgresql, alguém pode citar de repente alguma experiência com esse recurso? Como ficam as chaves estrangeiras na herança? Existem problemas com FK's na herança. Essa funcionalidade do PostgreSQL acabou sendo deixada de lado pois consideraram outras características mais importantes (e eu concordo). Eu tentei usar uma vez em um projeto de médio porte e desisti. Exemplo ( http://www.postgresql.org/docs/9.3/static/ddl-inherit.html ): A serious limitation of the inheritance feature is that indexes (including unique constraints) and foreign key constraints only apply to single tables, not to their inheritance children. --- Achei interessante os links abaixo e a replicação por streaming é muito legal. Tenho uma dúvida em relação a ela que seria mais ou menos assim: Cliente faz uma operação de pagamento de um título e em seguida consulta o título novamente. No momento do pgto (operação de escrita), minha aplicação executa no servidor máster e na consulta (apenas leitura), minha aplicação consulta em um servidor slave. Pode ocorrer de fazer o pagamento do título e consultar em seguida e ainda não aparecer o pagamento? (pelo que vi pode sim, mas quanto tempo e onde pode ser configurado este tempo? Malefícios de deixar um time baixo?) Pode, se tiver em replicação assíncrona. Nesse teu cenário, eu não vejo malefícios em deixar um time baixo. Entretanto, nada garante que será sincronizado antes do usuário invocar na tela de consulta no standby. Você pode monitorar o lag através desta query e ter uma ideia do tempo médio da replicação no seu ambiente. SELECT CASE WHEN pg_last_xlog_receive_location() = pg_last_xlog_replay_location() THEN 0 ELSE EXTRACT (EPOCH FROM now() - pg_last_xact_replay_timestamp()) END AS log_delay; Att. Márcio A. Sepp [1] - http://eulerto.blogspot.com.br/2010/11/replicacao-no-postgresql.html [2] - http://eulerto.blogspot.com.br/2010/11/hot-standby-e-streaming-replication.html ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: Replicação e ambiente complexo
Em 10 de dezembro de 2014 18:28, Everton Berz everton.b...@gmail.com escreveu: 2014-12-10 16:13 GMT-02:00 Márcio A. Sepp mar...@zyontecnologia.com.br: Bom dia, O que você considera um ambiente complexo? Poderia nos dar mais detalhes? Na verdade eu sou apenas um entusiasta. Mas minha visão de ambiente complexo seria um ambiente com muitas conexões de acesso no banco. Tanto para alteração quanto para somente leitura e também tabelas com bastante registros. Como poderia ser proposto uma solução, por exemplo, para um banco como o banco do Brasil? (hipoteticamente é claro) com muitos acessos de leitura e também muitos acessos de escrita e, com um cadastro centralizado (os saldos das contas e os nomes dos correntistas teoricamente deveriam ser centralizados não é mesmo?). Não necessariamente, principalmente se for uma abordagem síncrona. Seguindo no exemplo hipotético do banco, de tempos em tempos teria de se fazer uma fragmentação das tabelas de movimento, pois senão teríamos um inchaço muito grande com o passar do tempo. Li sobre a herança no postgresql, alguém pode citar de repente alguma experiência com esse recurso? Como ficam as chaves estrangeiras na herança? Existem problemas com FK's na herança. Essa funcionalidade do PostgreSQL acabou sendo deixada de lado pois consideraram outras características mais importantes (e eu concordo). Eu tentei usar uma vez em um projeto de médio porte e desisti. Exemplo ( http://www.postgresql.org/docs/9.3/static/ddl-inherit.html ): A serious limitation of the inheritance feature is that indexes (including unique constraints) and foreign key constraints only apply to single tables, not to their inheritance children. --- Achei interessante os links abaixo e a replicação por streaming é muito legal. Tenho uma dúvida em relação a ela que seria mais ou menos assim: Cliente faz uma operação de pagamento de um título e em seguida consulta o título novamente. No momento do pgto (operação de escrita), minha aplicação executa no servidor máster e na consulta (apenas leitura), minha aplicação consulta em um servidor slave. Pode ocorrer de fazer o pagamento do título e consultar em seguida e ainda não aparecer o pagamento? (pelo que vi pode sim, mas quanto tempo e onde pode ser configurado este tempo? Malefícios de deixar um time baixo?) Pode, se tiver em replicação assíncrona. Nesse teu cenário, eu não vejo malefícios em deixar um time baixo. Entretanto, nada garante que será sincronizado antes do usuário invocar na tela de consulta no standby. Você pode monitorar o lag através desta query e ter uma ideia do tempo médio da replicação no seu ambiente. SELECT CASE WHEN pg_last_xlog_receive_location() = pg_last_xlog_replay_location() THEN 0 ELSE EXTRACT (EPOCH FROM now() - pg_last_xact_replay_timestamp()) END AS log_delay; Att. Márcio A. Sepp [1] - http://eulerto.blogspot.com.br/2010/11/replicacao-no-postgresql.html [2] - http://eulerto.blogspot.com.br/2010/11/hot-standby-e-streaming-replication.html ___ 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 Pessoal, aguem mais concorda que herança tem seus problemas? poderia exemplificar Everton? pois estava pretendendo utilizar essa opção em um projeto que ja esta em andamento e tenho 2 tabelas com mais de 120 campos e gostaria de quebra-las. -- Douglas Fabiano Specht ___ 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: Replicação e ambiente complexo
Douglas o link da documentação oficial que enviei fala das limitações. Exemplo de um dos problemas: http://stackoverflow.com/questions/4940974/postgresql-foreign-key-not-existing-issue-of-inheritance Isso foi o que fez eu desistir. O ano era 2004 e quando questionei sobre a melhoria me disseram que essa parte do projeto não ia receber atenção. Dito e feito, 10 anos depois os problemas continuam. -- Everton 2014-12-10 18:57 GMT-02:00 Douglas Fabiano Specht douglasfabi...@gmail.com : Em 10 de dezembro de 2014 18:28, Everton Berz everton.b...@gmail.com escreveu: 2014-12-10 16:13 GMT-02:00 Márcio A. Sepp mar...@zyontecnologia.com.br: Bom dia, O que você considera um ambiente complexo? Poderia nos dar mais detalhes? Na verdade eu sou apenas um entusiasta. Mas minha visão de ambiente complexo seria um ambiente com muitas conexões de acesso no banco. Tanto para alteração quanto para somente leitura e também tabelas com bastante registros. Como poderia ser proposto uma solução, por exemplo, para um banco como o banco do Brasil? (hipoteticamente é claro) com muitos acessos de leitura e também muitos acessos de escrita e, com um cadastro centralizado (os saldos das contas e os nomes dos correntistas teoricamente deveriam ser centralizados não é mesmo?). Não necessariamente, principalmente se for uma abordagem síncrona. Seguindo no exemplo hipotético do banco, de tempos em tempos teria de se fazer uma fragmentação das tabelas de movimento, pois senão teríamos um inchaço muito grande com o passar do tempo. Li sobre a herança no postgresql, alguém pode citar de repente alguma experiência com esse recurso? Como ficam as chaves estrangeiras na herança? Existem problemas com FK's na herança. Essa funcionalidade do PostgreSQL acabou sendo deixada de lado pois consideraram outras características mais importantes (e eu concordo). Eu tentei usar uma vez em um projeto de médio porte e desisti. Exemplo ( http://www.postgresql.org/docs/9.3/static/ddl-inherit.html ): A serious limitation of the inheritance feature is that indexes (including unique constraints) and foreign key constraints only apply to single tables, not to their inheritance children. --- Achei interessante os links abaixo e a replicação por streaming é muito legal. Tenho uma dúvida em relação a ela que seria mais ou menos assim: Cliente faz uma operação de pagamento de um título e em seguida consulta o título novamente. No momento do pgto (operação de escrita), minha aplicação executa no servidor máster e na consulta (apenas leitura), minha aplicação consulta em um servidor slave. Pode ocorrer de fazer o pagamento do título e consultar em seguida e ainda não aparecer o pagamento? (pelo que vi pode sim, mas quanto tempo e onde pode ser configurado este tempo? Malefícios de deixar um time baixo?) Pode, se tiver em replicação assíncrona. Nesse teu cenário, eu não vejo malefícios em deixar um time baixo. Entretanto, nada garante que será sincronizado antes do usuário invocar na tela de consulta no standby. Você pode monitorar o lag através desta query e ter uma ideia do tempo médio da replicação no seu ambiente. SELECT CASE WHEN pg_last_xlog_receive_location() = pg_last_xlog_replay_location() THEN 0 ELSE EXTRACT (EPOCH FROM now() - pg_last_xact_replay_timestamp()) END AS log_delay; Att. Márcio A. Sepp [1] - http://eulerto.blogspot.com.br/2010/11/replicacao-no-postgresql.html [2] - http://eulerto.blogspot.com.br/2010/11/hot-standby-e-streaming-replication.html ___ 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 Pessoal, aguem mais concorda que herança tem seus problemas? poderia exemplificar Everton? pois estava pretendendo utilizar essa opção em um projeto que ja esta em andamento e tenho 2 tabelas com mais de 120 campos e gostaria de quebra-las. -- Douglas Fabiano Specht ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] RES: Replicação e ambiente complexo
Pessoal, aguem mais concorda que herança tem seus problemas? poderia exemplificar Everton? pois estava pretendendo utilizar essa opção em um projeto que ja esta em andamento e tenho 2 tabelas com mais de 120 campos e gostaria de quebra-las. Isso é normalização, herança não resolve esse problema. E banco bem normalizado o PostgreSQL suporta muito bem. Nem um assunto nem outro estão relacionados à replicação, questão inicial desta thread. Por favor organizem a lista como bons DBAs. []s Flavio Gurgel ___ 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: Replicação e ambiente complexo
Em 10/12/2014 22:08, Everton Berz everton.b...@gmail.com escreveu: Douglas o link da documentação oficial que enviei fala das limitações. Exemplo de um dos problemas: http://stackoverflow.com/questions/4940974/postgresql-foreign-key-not-existing-issue-of-inheritance Isso foi o que fez eu desistir. O ano era 2004 e quando questionei sobre a melhoria me disseram que essa parte do projeto não ia receber atenção. Dito e feito, 10 anos depois os problemas continuam. Como já dito aqui, implementar isso não é prioridade. Herança é uma funcionalidade que pouca gente usa (e o PostgreSQL é um dos poucos SGBD que suporta isso) sendo que temos centenas de novas funcionalidades muito mais úteis (democraticamente falando) a cada nova versão. Todavia, como o PostgreSQL é open source, todos podem modificá-lo para ter o que precisam, como alguns colegas aqui da lista fazem. E o assunto está fora da pergunta original sobre replicação. Sugiro aos colegas que estão fazendo perguntas abertas (como eu faria se houvesse um ambiente A que precisa fazer B se o PostgreSQL deveria fazer C) que : - lessem um pouco documentação e livros largamente disponíveis, muitos de graça - brincarem um pouco, o PostgreSQL tem a qualidade extra de ser grátis e facilmente instalável - fizessem perguntas um pouco mais direcionadas a problemas reais e específicos. Sim, o Banco do Brasil usa PostgreSQL. Não, eu não sou DBA lá, mas ele lê o que estamos discutindo aqui e dá seus pitacos de tempos em tempos :) ele contou sua história num evento recente. []s Flavio Gurgel ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] SubSelect em Window Function
Pessoal, existe possibilidade de transformar o SubSelect abaixo em Window Function ? SELECT campo1, (SELECT campo1 FROM tabela2 GROUP BY campo1 ORDER BY count(campo1) DESC LIMIT 1) as subselect FROM tabela1 Neste SubSelect estou buscando em uma outra tabela o registro que contem mais ocorrencias. obrigado, Wellington ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Replicação horizontal de tabelas
Boa noite (madrugada), Conforme sugerido num email anterior, estou abrindo este tópico para deixar a lista mais organizada. A pergunta eh simples: como vcs tratam tabelas de movimentação que contém muitos registros e que são referenciadas por outros objetos (fks)? Fatos a serem considerados: - essas tabelas possuem dados históricos, que são acessados raramente é são somente leitura; - essas mesmas tabelas são muito acessadas para gravação e leituras de dados recentemente inseridos, logo deixando elas com menos registros as consultas seriam mais rápidas?!?!?! - a herança não atende pois não lida com chaves estrangeiras; Obrigado a tds, Marcio Sepp ___ 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: Replicação e ambiente complexo
Enviado do meu iPad Em 10/12/2014, às 19:55, Flavio Henrique Araque Gurgel fha...@gmail.com escreveu: o assunto está fora da pergunta original sobre replicação. Concordo. Abri outra thread. Sugiro aos colegas que estão fazendo perguntas abertas (como eu faria se houvesse um ambiente A que precisa fazer B se o PostgreSQL deveria fazer C) que : - lessem um pouco documentação e livros largamente disponíveis, muitos de graça - brincarem um pouco, o PostgreSQL tem a qualidade extra de ser grátis e facilmente instalável - fizessem perguntas um pouco mais direcionadas a problemas reais e específicos. Na verdade estou fzndo com um estudo e talvez tenho de reestruturar meu banco para que ele satisfaça minha necessidade. O caso eh muito semelhante ao do banco usado como exemplo aqui neste email. Sim, o Banco do Brasil usa PostgreSQL. Não, eu não sou DBA lá, mas ele lê o que estamos discutindo aqui e dá seus pitacos de tempos em tempos :) ele contou sua história num evento recente. Alguns anos atrás era escritório fixo da IBM lá. Que bom que o DB2 deu lugar ao postgre. Se acaso tiver um link desse evento eu tenho interesse. []s Flavio Gurgel ___ 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] SubSelect em Window Function
On 10-12-2014 22:24, Wellington wrote: existe possibilidade de transformar o SubSelect abaixo em Window Function ? SELECT campo1, (SELECT campo1 FROM tabela2 GROUP BY campo1 ORDER BY count(campo1) DESC LIMIT 1) as subselect FROM tabela1 Neste SubSelect estou buscando em uma outra tabela o registro que contem mais ocorrencias. Eu não entendi a consulta e nem a sua descrição. Dá para ser mais específico? Existe campo1 na tabela1 e tabela2? Qual é a relação da tabela1 com a tabela2? -- Euler Taveira Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Replicação horizontal de tabelas
On 10-12-2014 22:45, Marcio A. Sepp wrote: Conforme sugerido num email anterior, estou abrindo este tópico para deixar a lista mais organizada. A pergunta eh simples: como vcs tratam tabelas de movimentação que contém muitos registros e que são referenciadas por outros objetos (fks)? Hoje há duas opções: (i) aplicação ou (ii) funções de gatilho. Fatos a serem considerados: - essas tabelas possuem dados históricos, que são acessados raramente é são somente leitura; - essas mesmas tabelas são muito acessadas para gravação e leituras de dados recentemente inseridos, logo deixando elas com menos registros as consultas seriam mais rápidas?!?!?! - a herança não atende pois não lida com chaves estrangeiras; O particionamento pode ser utilizado mas é *sua responsabilidade* fazer a verificação das chaves estrangeiras com funções de gatilho. Como os seus dados históricos são somente leitura, você pode tirar das funções de gatilho a verificação nessas tabelas filhos contendo dados que você considera histórico. -- Euler Taveira Timbira - http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] SubSelect em Window Function
Eu não entendi a consulta e nem a sua descrição. Dá para ser mais específico? Existe campo1 na tabela1 e tabela2? Qual é a relação da tabela1 com a tabela2? Euler, realmente me equivoquei, a intencao era mostrar o subselect na mesma tabela. Exemplo: Tenho que buscar em uma tabela temporaria o pedido e o motivo principal de rejeicao dos itens. PEDIDO | OCORRENCIA - 12345 | SEM ESTOQUE 12345 | SEM ESTOQUE 12345 | SEM CADASTRO Consulta: SELECT pedido, ocorrencia as rejeicao, count(1) FROM temp GROUP BY 1,2 ORDER BY 3 DESC LIMIT 1; Resultado: PEDIDO | OCORRENCIA - 12345 | SEM ESTOQUE Seria possivel usar Window Function neste caso ? Obrigado. Wellington ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral