From: | Marc Cousin <mcousin(at)sigma(dot)fr> |
---|---|
To: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: [Fwd: Quel est le codage le plus efficace] |
Date: | 2008-11-25 16:07:21 |
Message-ID: | 200811251707.21275.mcousin@sigma.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Le Tuesday 25 November 2008 14:08:07 Pascal Brognez, vous avez écrit :
> > Bonjour
>
> Bonjour,
>
> Je reformule ma question.
>
> Un insert qui se termine en erreur si non respect de la contrainte
> d'unicité de clé ou qui réussi. Est il un codage plus efficace en terme
> de rapidité et de consommation de ressource qu'un test d'existence suivi
> d'un Insert si la donnée à insérer n'est pas déjà présente.
> (C'est une notion voisine de la programmation par exception.)
>
> (Je précise que les deux codages produisent le résulta attendu.)
>
Dans la plupart des cas il vaut mieux opter pour un codage agressif : partir
de l'hypothèse que l'opération va réussir, et intercepter l'erreur si elle se
produit. Cela fait moins de requêtes à la base, ce qui est habituellement le
plus coûteux.
Evidemment, pour cela, il faut que le SGBD puisse déclencher des erreurs (donc
qu'il gère correctement les contraintes et qu'elles soient en place).
Au passage, si c'est pour faire beaucoup d'INSERT de ce genre, une requête
préparée permet d'aller un peu plus vite. Voire pour le mieux, un COPY dans
une table temporaire, puis une insertion avec une jointure...
From | Date | Subject | |
---|---|---|---|
Next Message | c.maumont | 2008-11-25 16:15:52 | RE: [pgsql-fr-generale] Quelle est la méthode la plus efficace ? |
Previous Message | François Figarola | 2008-11-25 14:14:03 | Re: [Fwd: Quel est le codage le plus efficace] |