
Envoyé par
Rami
Une question qui arrive un peu tard pour toi mais, vu le contexte tu as regardé du coté SSIS? (SQL Server Integration Services) en terme de performance sur le traitement data c'est assez adapté.
De même, si ton appli ne fait de la synchronisation de deux base "identique",
tu dois pouvoir trouver un moyen "tout pret" dans SQL 2005 (depend de l'edition je te dirais) et dans ce cas demande sur les forum SQL Server.
http://social.msdn.microsoft.com/For...5-578913dc4f42
Je suis pas dans le cas d'un SQL Server 64 bits, mais la situation s'en rapproche grandement 

Envoyé par
Rami
** il y a peut etre un algo plus optimisé que de faire un .select() pour chaque ligne...
Si tu dispose d'un bon ordonencement des records et une identification adequat, un parcours des 2 tables "en même temps" (un coup j'avance sur la table A, un coup j'avance sur la table mirroir de A) en comparant a chaque increment est peut etre possible... mais la faudrait rentrer un peu dans le detail de ton projet.
A vrai dire j'ai privilégié le traitement de donnée en mode déconnecté plutôt que la sélection massive de requêtes ...Disons que si la machine travaille dans son coin, c'est déjà plus rapide car on évite les "ouvertures/fermetures" de connexion.
J'avais pensé à faire des blocs de requetes, du genre récupérer le nombre de lignes, et le diviser de façon à avoir des blocs de ligne relativement plus petit à traiter. Mais je ne sais pas ce que peux donner des requetes avec des conditions du genre
"select meschamps from matable where ma cleprimaire in (suite,de,cle,primaire)"
J'ai "à peu de chose" près implémenté ton idée au début. C'est à dire que je faisais une sorte d'indexation des clé primaires avec un "Dictionnary (of String, Integer).
Je récupère mes données. Je parcours ma table source, je stocke dans un nouvel item de mon dictionnaire le couple "cléprimaire"/index de la ligne où est contenu cette clé dans le datatable.
Ensuite je fais un parcours de ma table de destination en utilisant pour chaque ligne la fonction "Contains()" de Dictionnary.
Le souci c'est qu'en terme de mémoire ça monte vite derrière....
Partager