Carregando...

Categoria: PostgreSQL

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

Partições no PostgreSQL

A partir do PostgreSQL 10, o banco passou a suportar partições nativamente. Partições são formas de quebrar uma grande tabela em subtabelas. Fazer partições em uma tabela pode melhorar performance em inserts e selects. Para que uma tabela seja particionada, ela precisa ter uma regra que dirá, com base no valor de alguma coluna, em qual partição uma linha irá ser colocada. Formas de particionar uma tabela Partição por Range Criando a tabela mãe: Criando as tabelas filhas: Partição por Continuação…

Descobrindo se datas, horas, timestamps se cruzam no SQL (OVERLAPS)

Imagine que você tem uma tabela SQL com calendário de compromissos. Você gostaria de escrever nela um compromisso dia 10/01/2018 das 12:00 às 13:00. Mas espere, antes de inserir esse compromisso na tabela, você quer descobrir se há algum outro compromisso acontecendo das 12:00 às 13:00 do mesmo dia. Descobri recentemente uma função/operação muito legal padrão do SQL chamada OVERLAPS que ajuda muito nisso. Ela serve pra comparar se dois eventos de tempo (intervalos de tempo, que tenham um início Continuação…

Criando constraint no PostgreSQL para impedir intersecção de intervalos (ranges) em uma tabela

Imagine que você tem uma tabela de folha ponto com 3 colunas, sendo delas: “nome” representando o nome de uma pessoa (TEXT) “chegada” representando uma data e horário que ela chegou no trabalho (TIMESTAMP) “saida” representando uma data e horário de saída da pessoa do trabalho (TIMESTAMP) Ensinarei como criar uma constraint para que não seja permitido que uma mesma pessoa tenha 2 registros de entrada e saída onde estes registros se interseccionem (permitir apenas intervalos de tempo que não Continuação…