Bonjour à tous!
Que je vous explique mon problème...
Mon travail actuel consiste en la migration de données (données de production et de configuration d'un logiciel) d'une base SQL Server 2005 'A' vers une autre base SQL Server 'B'.
Bien que la fonction première de ces deux bases est sensiblement la même, leur modèle de données est vraiment très différent.
Pour ce faire, j'ai développé des scripts SQL, etj'utilise des curseurs... Oui oui, j'assume.
Avant de crier au scandale, je vous assure que j'ai bien étudié la chose, et au vu de la complexité de cette migration, c'est vraiment le choix qui s'impose... Promis.
Bref, revennons-en à nos moutons:
Lors de la migration de tables de production assez importantes (+ de deux millions de lignes), par l'intermediaire d'un curseur sur ma table "source" (base A), l'exécution est très très lente (environ 5000 lignes minutes!).
J'ai tout tenté (test en charge de différentes requêtes, sous-requêtes, tables temporaires, etc..).
Je me suis aperçu qu'en ouvrant (clic droit, "ouvrir la table") ma table "source" sous la base A depuis le Management Studio Express pendant l'exécution de mon script, je passe à plus 150 000 lignes minute...
Je ne vois pas trop d'où viens cette différence. Pour moi c'est incompréhensible.
Autres infos:
J'utilise SLQ Server 2005 Express, sur un ordinateur récent.
Après défragmentation, la chose s'améliore un peu, mais pas de trop.
Si vous avez des idées sur le pourquoi du comment, je suis preneur
Merci d'avance.
Pillou
Partager