Carregando...

Categoria: PostgreSQL

VIEWS no PostgreSQL

As VIEWs são basicamente uma forma de armazenar um SELECT dentro do banco de dados, dando a ele um nome e permitindo que ele seja acessado e consultado como se fosse uma tabela a partir do seu nome. Imagine que temos a seguinte tabela: E inserimos nela vários dados: Queremos criar uma VIEW em que tenhamos apenas partition = 2 Assim podemos chamar teste_2 como se fosse uma tabela Ao darmos EXPLAIN ANALYZE nessa consulta, percebemos que o índice é Continuação…

Hikari Connection Pool e por que você DEVE usá-lo

É a melhor biblioteca para fazer connection pools de drivers de banco de dados que usam o JDBC. ATENÇÃO! Se estiver usando PgPool ou PgBouncer entre seu software e o PostgreSQL, você não precisará do Hikari 😛 Pra que serve um Connection Pool? Se você precisa ter performance e estabilidade ao acessar o banco de dados em um software, você precisa de uma biblioteca de connection pool além da sua biblioteca de driver de conexão sql. Por quê? O padrão Continuação…

Criando funções de agregação (aggregation functions) customizadas no PostgreSQL

As funções de agregação padrão do PostgreSQL não são suficientes para resolver seu problema? Você pode criar a sua própria! Referências Artigo da Cybertec https://www.cybertec-postgresql.com/en/writing-your-own-aggregation-functions/ Documentação Oficial do PostgreSQL https://www.postgresql.org/docs/current/xaggr.html Passando mais de um parâmetro em uma aggregation functionhttps://stackoverflow.com/a/46412594/2789895

Cursor no PostgreSQL

Ao fazer um SELECT no PostgreSQL, você recebe sempre uma lista estática de linhas com suas respectivas colunas. Mas e se você precisasse fazer algum tipo de processamento linha-a-linha de forma eficiente? Se você precisasse percorrer cada linha de um retorno de um SELECT e executar uma função e ir atualizando uma variável dentro de uma stored procedure? (Em outras palavras, como é que podemos fazer um loop de for dentro do PostgreSQL?) O CURSOR te permite fazer isso! Imagine Continuação…

Tuning PostgreSQL

WORK_MEM WORK_MEM é a quantidade máxima de memória RAM que o PostgreSQL dá as consultas para agilizar certas operações. Uma delas é o ORDER BY (caso você não tenha índices nas colunas desejadas). Ao aumentar o WORK_MEM, seus ORDER BYs podem ficar bem mais rápidos já que a ordenação dos dados será feita na memória RAM. Referências PostgreSQL Tuner, um programa em Perl que analisa seu Postgre e dá sugestões de melhoriashttps://github.com/jfcoz/postgresqltuner Tuning PostgreSQL – Wiki oficial do PostgreSQLhttps://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server Como Continuação…

Tunando o PostgreSQL para uma alta quantidade de escrita de dados

O que fazer? Hot Updates – Fazer updates em colunas que não são indexadas. Vaccuum! Ligue o auto-vacuum para liberar espaço de armazenamento e melhorar a performance se você faz muitos deletes e updates.Vacuum logging, veja se as tabelas estão sendo auto vacuum. E para insert only? Vacuum Freeze in memory!Aumentar o checkpoint_timeout Porque assim o vacuum vai acontecer entre os checkpoints Common DBA Tasks no AWS RDShttps://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.html

PostgreSQL: VACUUM e MVCC

Referências Artigo do Heroku https://devcenter.heroku.com/articles/postgresql-concurrency Artigo super interessante em um bloghttp://blog.lerner.co.il/in-postgresql-as-in-life-dont-wait-too-long-to-commit/ Artigo super interessante https://blog.sentry.io/2015/07/23/transaction-id-wraparound-in-postgres