Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous,
J’ai un petit question est j'espère trouver la bon réponse ici,
Voila, j'ai une dll (crée en c avec la lib pqlib) qui assure la traçabilité pour un banc de test, mon problème est le lenteur d'exécution des requêtes (insertion des mesures dans la base), en faite pour chaque transaction SQL je passe par les étapes suivantes :
- Connexion à la BDD.
- Exécution de la requête.
- Déconnexion à la BDD.
Est ce que c'est possible de lancer la connexion au démarrage de mon application est la déconnexion a la fermeture ?, que pensez vous ?
Mon Config : XPSP2, Labwindows/CVI (Compilateur C), PG 8.3 (Linux Mandriva)
MERCI d’avance.
Cordiales Salutations
Hors ligne
Vous irez effectivement beaucoup plus vite si vous ne vous déconnectez pas pour chaque requête. Vous irez encore plus vite si vous ne faites pas une insertion par transaction, mais plusieurs.
Marc.
Hors ligne
merci Marc pour la confirmation,
quelqu'un des mes collègues me conseillé de créer mon DLL avec C# .NET avec le provider npgsql, puis on passe cette dll en warrper .NET pour l'utilisation avec labwindows/CVI.
Que pensez vous ?,
j'ai des doutes avec les ActiveX (.NET to CVI), par contre avec libpq c'est un accès natif a la BDD, non ?
Cordiales Salutations
Hors ligne
La libpq propose un accès natif à la base de données. Le pilote npgsql se base sur la libpq à ma connaissance.
Guillaume.
Hors ligne
Bonjour,
MERCI à tous,
SVP, j'aurais besoin d'une petite précision à ce point :
Pour le moment je passe toutes mes requêtes (INSERT, UPDATE, SELECT) à la base de données via la libpq et j'utilise parfois des requêtes de jointure sur plusieurs tables ce qui peut être à l'origine de la lenteur aussi, donc je voudrais savoir si je stocke les requête de SELECT dans la base sous forme des procédures stockée, ça peut optimiser les performances ou non ?
Cordiales Salutations
Hors ligne
En soit, le fait mettre vos requêtes dans des procédures stockées ne vous apportera pas de meilleures performances. si vous le faites il est essentiel de déclarer vos procédures STABLE ou IMMUTABLE quand c'est possible :
http://docs.postgresql.fr/9.0/xfunc-volatility.html
Si vous voulez optimisez vos traitements, suivez les conseils de Marc : effectuez plusieurs transactions par sessions, plusieurs insertions par transactions, etc...
Vous pourrez alors utilisez les commandes PREPARE / EXECUTE qui permettent de pré-calculer et réutiliser les plans d'exécution...
damien clochard
http://dalibo.org | http://dalibo.com
Hors ligne
Un grand merci pour tous vos discussions
Merci pour tous les pistes.
Cordiales Salutations
Hors ligne
Pages : 1