Carregando...

Categoria: Banco de Dados

Descobrindo tamanho de tabelas e índices no PostgreSQL

Referências Listando tamanho de tabelas e indiceshttps://dataedo.com/kb/query/postgresql/list-of-tables-by-the-size-of-data-and-indexes Documentação do pg_indexeshttps://www.postgresql.org/docs/current/view-pg-indexes.html Descobrindo espaço consumido – PostgreSQL Tutorialhttps://www.postgresqltutorial.com/postgresql-database-indexes-table-size/

Onde o PostgreSQL armazena as senhas dos usuários?

Ao abrir uma conexão com o PostgreSQL, geralmente você informará uma senha para se autenticar e obter acesso ao banco. Mas onde essas senhas ficam salvas? Elas são salvas de forma segura? Depende! Essas senhas são salvas na tabela pg_authid do schema pg_catalog. Essa tabela só é acessível se você estiver logado com um usuário SUPERUSER. Apenas o hash das senhas é salvo. O hash é calculado pelos algoritmos MD5 (sem sal) ou Scram-SHA-256. É sabido que o MD5 sem Continuação…

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…

Configurando parâmetros de operação do PostgreSQL

Todo banco de dados usa certos parâmetros de operação para funcionar, alguns exemplos de parâmetro de operação são: Definindo o fuso horário padrão do PostgreSQL Definindo o tempo máximo de uma transação (timeout de uma transação) Você pode configurar os parâmetros no escopo da sessão (escopo da conexão) ou no escopo de uma transação. Referências Documentação oficial do comando SET https://www.postgresql.org/docs/current/sql-set.html Definindo um timeout para transações https://dba.stackexchange.com/questions/164419/is-it-possible-to-limit-timeout-on-postgres-server