Bonjour,
Je suis à la recherche d'un moyen efficace, tant au niveau résultat qu'au niveau rapidité, d'insérer un grand nombre de record dans une DB de type sql server.
J'ai déjà essayé 2 méthodes...
La première étant de faire une requête de sélection sur la table où les records doivent être ajoutés et de récupérés les infos dans un dataset. J'ajoute ensuite tous les records au dataset et j'appelle la méthode update du DataAdapter (je crois ^^)
Pour la seconde, je construis une requête d'insertion tout ce qu'il y a de plus classique si ce n'est qu'elle doit ajouté des millions de records que je coupe en bloc de 100000 à l'aide d'une boucle (idem avec le dataset).
La première méthode est satisfaisant à partir du moment où la table dans laquelle il faut faire l'insertion est vide car pour avoir le dataset, il faut d'abord faire un select et même si on s'arrange pour avoir un select qui ne retourne rien, cette opération prend quand même un temps considérable car il doit scanner tous les records pour savoir si l'un d'entre eux correspond aux critères ou non.
La 2e se passe du select mais par contre, elle a l'air de mettre un temps indéfini pour insérer ses records....
J'ai lancé l'application pour tester et c'est toujours occupé depuis une bonne heure. Elle n'est pas encore passé le premier paquet de 100000...
Je cherche donc une 3e possibilité. Avis aux personnes créatives ^^.
Merci d'avance.
Griftou.
EDIT : Je viens de penser à un truc ! N'existerait-il pas une clause du select qui ne me retournerait que le 1e enregistrement? Ainsi j'aurais la structure de mon dataset sans devoir scanné la table entière !
Je vous tiens au courant.
Partager