Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'aurais souhaité savoir s'il est possible d'inclure des vacuums au sein de requêtes complexes. Je m'explique :
Par exemple, je peux être amené à réaliser de multiples opérations de mises à jour de champs sur une même tables selon se principe : (ce qui me permet d'enchaîner de nombreuses opérations en un coup)
BEGIN;
requête_de_maj_1;
COMMIT;
BEGIN;
requête_de_maj_2;
COMMIT;
BEGIN;
requête_de_maj_3;
COMMIT;
etc...
Si les requêtes sont effectuées manuellement un à une, et avec des vacuums effectués manuellement eux aussi entre chacune d'entre-elles, le temps de calcul total prend un temps "t".
Si j'effectue la requête sous le modèle précédemment décrit le temps de calcul est beaucoup plus long "T" !!! Un vacuum final fait ressortir de très importantes quantités de lignes à supprimer : les lignes "inutiles" s'accumulent donc et les performances de calculs s'effondrent avec le temps.
Si j'essaie d'inclure des vacuums dans ma requête pgAdmin me répond que ce n'est pas possible.
Existe-t-il une méthode pour inclure des vacuums ou peut-être faire différemment ? (je m'y prend peut-être mal, je ne suis pas informaticien de formation)
Merci d'avance pour votre aide.
Hors ligne
Bonjour,
Quel message d'erreur exact avec vous quand vous essayez d'inclure le vacuum ?
Marc.
Hors ligne
Voici la commande type et le message renvoyé :
UPDATE cad_2016.edi_parc SET code_insee = (SUBSTRING(edi_parc.codcomm FROM 1 FOR 2) || SUBSTRING(edi_parc.codcomm FROM 4 FOR 6));
VACUUM FULL VERBOSE ANALYZE cad_2016.edi_parc;
ERREUR: VACUUM ne peut pas être exécuté à partir d'une fonction ou d'une chaîne
contenant plusieurs commandes
********** Erreur **********
ERREUR: VACUUM ne peut pas être exécuté à partir d'une fonction ou d'une chaîne
contenant plusieurs commandes
État SQL :25001
Le tout réalisé au sein de pgAdmin
Hors ligne
Ok, c'est une limitation de pgadmin alors… C'est parce qu'il envoie l'ensemble comme un seul ordre SQL.
Vous avez peut-être intérêt à stocker la série d'ordres à exécuter dans un fichier, que vous passerez en paramètre à psql (qui est plus fait pour ça).
Marc.
Hors ligne
Je vais mener des tests !!!
Merci pour votre retour...
Hors ligne
Tests réalisés.
En effet cela fonctionne parfaitement de cette manière, les vacuum sont acceptés.
Merci encore pour l'assistance.
Hors ligne
Pages : 1