[SQL2005][SQLCMD] Problème de performance sur INSERT
Bonjour,
je travaille dans une équipe de 6 personnes faisant le même type de développement.
Voilà ma question à laquelle nous ne trouvons (à 3) aucune réponse:
Nous avons tous la même configuration logicielle mais pour 2 de nos machines (même modèle d'une marque très connue) qui ne sont pas les mêmes que les 4 autres, la même requête va mettre 6 FOIS PLUS DE TEMPS !
Je ne souhaite aucun commentaire sur la façon d'insérer les données car je suis obligé de faire un insert par ligne:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| SET NOCOUNT ON
GO
select getdate();
GO
DELETE FROM TABLE;
GO
INSERT INTO TABLE(ID, ORDRE1,ORDRE2) VALUES(95816, 1, 1);
GO
INSERT INTO TABLE(ID, ORDRE1,ORDRE2) VALUES(95816, 1, 2);
GO
INSERT INTO TABLE(ID, ORDRE1,ORDRE2) VALUES(95817, 1, 1);
GO
.../...
INSERT INTO TABLE(ID, ORDRE1,ORDRE2) VALUES(99695, 1, 2);
GO
select getdate(); |
ainsi, ce fichier contient un peu 39000 enregistrements.
Script lancé à l'aide d'un .bat contenant la commande: sqlcmd -S "%COMPUTERNAME%\SQLEXPRESS" -U "sa" -P "****" -d "DBNAME" -i "test_perf.sql" -o "test_perf.log"
Voici le résultat:
Code:
1 2 3 4 5
| -----------------------
2011-01-27 09:50:57.830
-----------------------
2011-01-27 09:53:52.470 |
2' 55" ! Cette même opération sur les 4 autres machines prend moins de 30 secondes.
et sur n'importe quelle table, qu'elle que soit le nombre de lignes à insérer, on a cette différence coeff 6.
Voici la config de ces machines Proc Xeon 2.4; 2,5Go Ram; Disque SAS 150Go@15Krpm
Les 4 autres machines ont des processeurs Core2Duo, quantité Ram identique ou supérieure et disque SATA
Si une personne a une idée lumineuse, nous sommes preneurs.
Merci, à bientôt, Laurent.