Carregando...

Categoria: PostgreSQL

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

Fazendo tuning de memória RAM no PostgreSQLhttps://severalnines.com/database-blog/architecture-and-tuning-memory-postgresql-databases Qual os melhores parâmetros para minha máquina? Gerador de parâmetros de tuning da CYBERTEC. http://pgconfigurator.cybertec.at/ 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.

Criando colunas após o FROM no PostgreSQL

O PostgreSQL permite criar colunas após a definição do FROM. Você pode chamar uma função para alterar a coluna (mas não pode fazer : O estranho é que é possível fazer isso: Você pode chamar uma coluna depois dela ser criada:

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

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…

Funções em PostgreSQL

O PostgreSQL permite criar funções (também chamadas de stored procedures) no paradigma de programação imperativo (além do paradigma declarativo do SQL). O PostgreSQL suporta diferentes linguagens de programação, mas por padrão temos a linguagem PL SQL (Procedural Language SQL) e o PL PGSQL Exemplo de função Volatilidade (VOLATILITY) A volatilidade diz ao o PostgreSQL se ele poderá fazer um cachê para agilizar as chamadas das funções. Volatile Não é feito nenhum tipo de cachê. A função é executada e re-executada 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…