Pourquoi SQL server insère-elle si lente?

J'essaie d'insérer des lignes de données en mémoire dans une table SQL Server Express 2005. Il est en cours d'exécution ce qui me semble très lentement - environ 5 secondes par 1000 lignes insérées. Je suis juste en utilisant une base "INSERT INTO commande". La lenteur ne dépend pas de la table de données - il est encore lent avec un tableau avec une colonne int et pas d'index. Il n'en est rien à faire avec mon logiciel c'est juste que la lenteur de l'exécution de SQL dans une boucle à partir de Management Studio. Il n'y a rien d'autre accès à la base de données en même temps. Sur un Xeon 3Ghz (vieux je sais), cela prendra environ 10 secondes à s'exécuter:

declare @i int  
set @i = 0  
set nocount on  
while @i < 2000  
begin  
insert into testdb(testcolumn)  
values (1)  
set @i = @i + 1  
end  

Est-il une meilleure façon d'insertion en bloc de données en mémoire que l'on boucle sur les INSÉRER? Ou certains de configuration je dois changer dans SQL Server?

OriginalL'auteur Peter | 2009-11-16