Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

PostgreSQL et Labview

Bonjours,

 

J'utilise la librairie postgresql2labview pour accéder à une base de donnée. Mon problème c'est que la fonction ExecutCmd de cette librairie va chercher les données de ma table cellule par cellule lorsque je fais par exemple

 

SELECT TimeStamp,Header[4], id_dataset FROM rt_raw_342045637152347776 WHERE TimeStamp > '1980-01-01' ORDER BY TimeStamp DESC LIMIT 3600 !!!

 

Ce qui est dérengeant c'est que cela me prend bcp trop de temps (3.5 secondes), j'aimerais pourvoir allé chercher mes donnée ligne par ligne au moins et non cellule par cellule. Je ne sais pas si vous avez une astuce?

 

La même requête avec pgadmin me prend 92ms.

 

Avez vous une idées?

 

Cordialement

 

Sébastien Kuenlin

0 Compliments
Message 1 sur 6
3 579 Visites

Bonjour Sébastien,

 

As tu essayé avec le Database toolkit de NI? Peut être ira t'il plus vite pour les requêtes.

 

Comment sont structurées tes tables? combien as tu de colonnes? en théorie tu dois en avoir très peut donc la recherche cellule par cellule ne devrait pas être beaucoup plus longue.

 

Je sais aussi que l'on peut modifier les configs de PostGreSQL pour optimiser certains types de recherches, mais Google t'en dira plus que moi il y a pleins de questions sur des forums spécialistes des SGBD.

 

Ton timestamp semble être une string, en Base de donnée les recherches sur des nombres vont plus vite il me semble (mais le problème semble surtout venir de ta librairie)

 

Quelle est la taille de ta base de données?

 

En espérant avoir donné quelques pistes...

Rodéric L
Certified LabVIEW Architect
0 Compliments
Message 2 sur 6
3 577 Visites

Hello,

 

Tout d'abord merci de ta réponse.

 

Non je n'ai pas essayé le Database toolkit de Ni car tout le soft est fait avec la librairie postgresql2labview et je ne veux pas tout refaire (ce soft avait été fait par une autre personne que moi) et d'après ce que j'ai entendu cela ne serait pas plus rapide.

 

La table ou je fais cette requêtes est relativement simple (32colones et 3600 lignes max) donc si je vais chercher cellules par cellule (deux boucle for impriqué) cela me fait 115200 iteration tout de même avec insertion dans un tableau à chaque fois. Puis enfin ressortir le tableau... pas très optimisé tout ça 😉 ! Maintenant si je fais la même requête avec pgadmin (le soft fournit par PostgreSQL) la requête ne dur que 92ms!!! Donc je pense pas que cela vienne des configs de PostgreSQL mais vraiment de ma librairie.

 

Pour la taille de ma base de donnée complète c'est 26 tables dont 7 tables pour les données qui arrive de l'acquisition. Mais mon problpème vient vraiment de la table des donnée en temps réelle (3600 lignes et 32 colones), les autre table n'ont pas bcp de donnée.

 

Cordialement

 

Sébastien Kuenlin

0 Compliments
Message 3 sur 6
3 574 Visites

Déjà 32 colonnes c'est beaucoup trop puisque les algo sont optimisés pour chercher suivant les enregistrements (lignes) il faut subdiviser en plusieurs tables avec des foreign key etc..

 

La requête est bien longue en effet pour une si petite table, par contre je ne connais pas ta librairie donc je ne sais pas si il y a une fonction plus appropriée, mais un test simple avec le toolkit NI me semble une bonne option sa ne prendrait que quelques minutes pour tester. Tu fais juste un open puis une requete SQL et un close et tu vois combien sa prend de temps...

Rodéric L
Certified LabVIEW Architect
0 Compliments
Message 4 sur 6
3 568 Visites

Re Bonjours,

 

Alors j'ai trouvé une solution, j'au recoder la manière dont la librairie allais chercher les cellules dans la table et maintenant je suis à 92 ms 😉

 

Maintenant :

 

getdatav2.png

 

 

Avant

 

getData.jpg

 

 

Il y a pas grande différence dans le code, mais un gain de temps de 30x !!

 

Cordialement

 

Sébastien Kuenlin

0 Compliments
Message 5 sur 6
3 562 Visites

bonjour ,  je suis encore debutante avec labview et jai un projet qui consister  à enregestrer des donnnés dans des  tableaux de base de donnée . avez vous des docuemnts qui peuvent m'aider à realiser cette tache .merci 🙂

0 Compliments
Message 6 sur 6
3 420 Visites