Eu importei dados para um novo banco de dados (cerca de 600 milhões de linhas de timestamp, integer, double). Eu então criei alguns índices e tentei alterar algumas colunas (tenho alguns problemas de falta de espaço), o banco de dados é aspirado.
Agora o pgAdmin III me diz que o " Tamanho dos arquivos temporários " é 50G~+.
- O que são esses arquivos temporários? são como o log de transações do SQL Server?
- Como posso me livrar deles, parece que o banco de dados é muito maior do que deveria (o tamanho total do banco de dados é de 91 GB)
Usando o Posgres 9.4.1 em um servidor Windows 2012.
Uma captura de tela da guia de estatísticas do banco de dados:
Não encontrei nada na documentação do pgAdmin, mas o código-fonte revela a consulta por trás dessas entradas (adicionadas para o Postgres 9.2+):
Ele se resume a:
E o manual do Postgres tem detalhes para
pg_stat_database
:Observe que esses valores não contribuem para o tamanho do banco de dados. Mas eles indicam que sua configuração para
work_mem
pode ser muito baixa, de modo que muitas operações de classificação se espalham para o disco (o que é muito lento em comparação com apenas a RAM).Relacionado:
Para realmente compactar o tamanho do seu banco de dados:
Para medir o tamanho:
À parte: WAL (Write Ahead Log) seria equivalente no Postgres para o log de transações no SQL Server. Boa explicação nesta resposta relacionada no SO:
De acordo com:
http://www.postgresql.org/message-id/[email protected]
O contador temporário (arquivos e espaço usado) mostra um total de todos os arquivos temporários usados desde provavelmente a criação do cluster. Ele não reflete o espaço atual usado pelos arquivos temporários.
Meu sistema, por exemplo, mostra quase 700 GB de arquivos temporários usados, mas o espaço real ocupado pelos arquivos temporários em /var/lib/pgsql/9.3/data/base/pgsql_tmp é de apenas 53 MB atualmente.