J'ai importé des données dans une nouvelle base de données (environ 600 millions de lignes d'horodatage, entier, double). J'ai ensuite créé quelques index et essayé de modifier certaines colonnes (en raison de problèmes d'espace), la base de données est vide.
Maintenant pgAdmin III me dit que la " taille des fichiers temporaires " est 50G ~ +.
Utilisation de Posgres 9.4.1 sur un serveur Windows 2012.
Une capture d'écran de l'onglet Statistiques de la base de données:
Je n'ai rien trouvé dans la documentation de pgAdmin, mais le le code source révèle la requête derrière ces entrées (ajoutée pour Postgres 9.2+):
Cela se résume à:
SELECT temp_files AS "Temporary files"
, temp_bytes AS "Size of temporary files"
FROM pg_stat_database db;
Et le le manuel Postgres contient des détails sur pg_stat_database
:
tmp_files
bigint
Nombre de fichiers temporaires créés par des requêtes dans cette base de données. Tous les fichiers temporaires sont comptés, quelle que soit la raison pour laquelle le fichier temporaire a été créé (par exemple, le tri ou le hachage) et quel que soit le paramètre log_temp_files .
temp_bytes
bigint
Quantité totale de données écrites dans des fichiers temporaires par des requêtes dans cette base de données. Tous les fichiers temporaires sont comptés, quelle que soit la raison pour laquelle le fichier temporaire a été créé et quel que soit le paramètre log_temp_files .
Notez que ces valeurs pas contribuent à la taille de votre base de données. Mais ils indiquent que votre paramètre pour work_mem
peut être trop faible, de sorte que de nombreuses opérations de tri se déversent sur le disque (ce qui est très lent par rapport à la seule RAM).
En relation:
Pour réellement compacter la taille de votre base de données:
Pour mesurer la taille:
Mis à part: [~ # ~] wal [~ # ~] (Write Ahead Log) serait équivalent en PostgreSQL pour le journal des transactions dans SQL Server. Belle explication dans cette réponse connexe sur SO:
Selon:
http://www.postgresql.org/message-id/[email protected]
Le compteur temporaire (fichiers et espace utilisé) affiche un total de tous les fichiers temporaires utilisés depuis probablement la création du cluster. Il ne reflète pas l'espace actuel utilisé par les fichiers temporaires.
Mon système, par exemple, affiche près de 700 Go de fichiers temporaires utilisés, mais l'espace réel occupé par les fichiers temporaires dans /var/lib/pgsql/9.3/data/base/pgsql_tmp n'est actuellement que de 53 Mo.