Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous,
Nous travaillons sur un PG13 environnement linux : CPU 6 et RAM = 14GB.
Nous avons une table de 37GB (19GB de data et 18GB d'index) environ comportant 138544894 nombre de lignes.
Lorsqu'on fait une copie de cette table vers une autre table que ce soit avec INSERT INTO SELECT * FROM la_table ou la commande COPY FROM fichier-contenant_les_donnees_de_la_table, PG tombe sur un out of memory Failed on request of size 1048576 in memory context "AfterTriggerEvents".
Il n'y a pas d'autres requêtes en cours sur la base à part la copie, comment donc expliquer cette erreur svp et comment la contourner sinon ?
Merci d'avance de votre intérêt sur le sujet
Cdlt,
Hors ligne
Il faut regarder dans la définition de la table cible quels sont les triggers et les contraintes d'intégrité différées.
Les contraintes d'intégrité peuvent être supprimées et remises après import.
Pour les triggers ça dépend de ce qu'ils font. Généralement on n'a pas trop envie d'exécuter des millions de triggers sur des imports en masse.
Au passage, ajouter les index après l'import en masse pluôt qu'avant est aussi conseillé pour la durée globale d'import.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
Bonjour,
Excusez pour la réponse tardive.
Oui, effectivement c'est une table partitionnée en plusieurs partitions , çà peut bien être çà.
Merci
Hors ligne
Pages : 1