Estou usando um grande número de TEMP TABLES
e quero ter certeza de que não estou vazando armazenamento.
Eu crio e uso a tabela em uma transação com CREATE TEMP TABLE mytable ... ON COMMIT DROP
.
Estou tendo problemas para entender a documentação do CREATE TEMPORARY TABLE
. Ele afirma:
O daemon autovacuum não pode acessar e, portanto, não pode aspirar ou analisar tabelas temporárias. Por esse motivo, as operações apropriadas de vácuo e análise devem ser executadas por meio de comandos SQL de sessão.
Vou ON COMMIT DROP
recuperar espaço ou preciso realmente correr VACUUM mytable
?
Se eu precisar executar VACUUM
, não sei como, pois a tabela temporária não está disponível após o término da transação.
De qualquer forma , as tabelas temporárias são descartadas completamente no final de sua sessão. (Ou no final da transação atual já com
ON COMMIT DROP
.) Oautovacuum
daemon (ou manualVACUUM
, nesse caso) não está envolvido nisso.Como as tabelas temporárias são registradas nos catálogos do sistema como tabelas regulares, eliminá-las deixa algumas tuplas mortas (muito pequenas!) para trás, que são limpas por ,
autovacuum
eventualmente. Se você quiser contar isso como efeito no armazenamento.Relacionado: