Requete ou variable ???

Requete ou variable ??? - SQL/NoSQL - Programmation

Marsh Posté le 13-04-2006 à 16:00:28    

Bonjour,
voila je voudrais savoir ce qui est le plus rapide entre faire une requete (dans une base de données access) et parcourir un chaine de caratères ?
Car en fait je dois regarder si une donnée x est deja insérée dans une table. Mais cela le fait environ 40000fois dans mon programme.
Donc par soucis de réduire le temps d'exécution de ma fonction vba je voudrais savoir comment rendre cette vérification optimale.
 
J'espère que vous avez compris ce que je voudrais savoir :).
Merci


Message édité par hacksi le 13-04-2006 à 16:01:36
Reply

Marsh Posté le 13-04-2006 à 16:00:28   

Reply

Marsh Posté le 13-04-2006 à 16:33:30    

La requête est théoriquement plus rapide qu'une long parcours de chaîne. Mais cela dépend de l'indexation de la table et de la longueur du parcours.
 
Si c'est juste obtenir le nom du mois (janvier...) en fonction du numéro du mois, le parcours d'un tableau sera plus rapide. Mais si c'est pour trouver le nom d'une commune en fonction de son code postal, alors la recherche par une requête sera plus rapide.

Reply

Marsh Posté le 13-04-2006 à 16:39:06    

bin en fait je veux savoir si un equipement a déjà était inséré.  
Donc si j'utilise une requête celà donne :  

Code :
  1. 'on regarde si l'équipement existe déjà dans la table EQUIPEMENT
  2. Set tempreq = mabase.OpenRecordset("SELECT count(Id_equip) AS Nb_equip FROM EQUIPEMENT WHERE Libelle='" & temp & "'" )
  3.        
  4. 'On insere l'abréviation de l'équipement et son libelle si l'équipement n'existe pas encore
  5. If tempreq!Nb_equip = 0 Then
  6.   CurrentDb.Execute "INSERT INTO EQUIPEMENT(Abrev, Libelle) VALUES('" & Abrev_cour & "', '" & temp & "')"
  7. End If

Reply

Marsh Posté le 13-04-2006 à 16:42:12    

Oui, ça a l'air bien.

Reply

Marsh Posté le 13-04-2006 à 16:44:55    

Donc c'est cette méthode la plus rapide ???

Reply

Marsh Posté le 13-04-2006 à 16:54:26    

Pour la recherche en base, je ne vois pas vraiment d'autres solutions.
 
Par contre, pour des insertions, le problème se pose d'une manière très différente, car il existe l'insertion en masse (bulk comme disent les anglais) à partir d'un fichier texte, qui est bien plus rapide qu'une boucle de 40 000 insert.
L'insertion en masse se fait via l'importation de données externes, qui comporte l'option, relativement peu connue mais parfois utile, du fichier de spécifications (voir le bouton "avancé" dans l'un des écran d'importation).

Reply

Marsh Posté le 13-04-2006 à 16:59:50    

bin en fait tout au début j'importe une feuille excel dans access. A partir de la table créée du fait de l'importation de la feuille, je créé plusieurs table.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed