Nous devons INSÉRER 2000 enregistrements dans la base de données SQL à partir du code C# .Net. Pour cela, il est possible d'INSÉRER tous les 2000 enregistrements à la fois au lieu d'exécuter la requête INSERT pour chaque enregistrement. De même, quel serait l'impact sur les performances de cette opération?INSÉRER 2000 enregistrements dans la base de données SQL à la fois à partir du code C# .NET
Répondre
vous pouvez le faire rapidement en utilisant SqlBulkCopy:
http://www.dotnetcurry.com/ShowArticle.aspx?ID=323
Nous l'utiliser pour importer un ensemble de données d'environ 100 000 enregistrements dans une table SQL en quelques secondes, où 100.000 instructions d'insertion a pris 15 minutes.
Vous ne pouvez pas le faire par lots à partir du code C#. 2000 lignes seront faciles à insérer si.
Une option peut être disponible si vous avez les 2000 enregistrements dans un fichier plat, vous pouvez le copier sur le serveur SQL et créer SP à BULK INSERT le fichier dans une table. Puis appelez le SP à partir de votre code C#. Je ne voudrais pas déranger à moins que vous voyez avoir plus de lignes que cela et si vous avez une énorme table cible.
Qu'en est-il de SqlBulkCopy ?? –
Ceci est ** pas vrai **. .NET inclut la très puissante classe ** SQLBulkCopy ** qui est ** LE ** moyen le plus rapide d'insérer des données dans une base de données SQL. – ntziolis
Eh bien, vous pourriez construire une requête qui a plusieurs inserts en elle:
string sql = "INSERT INTO table (col1, col2) values (@val1,@val2);" +
"INSERT INTO table (col1, col2) values (@val3,@val4);"
Mais le traitement des paramètres de la commande obtiendrait un peu délicat.
Vous pouvez également utiliser DataAdapters and DataTables to do batch inserts. Ce serait probablement la meilleure option, bien que l'utilisation soit un peu étrange (pas aussi belle que addBatch()/executeBatch()
de Java par exemple).
Performance sage, vous aurez certainement obtenir un bon coup de pouce de la performance en faisant cela, bien que vous pourriez avoir besoin de jouer avec la taille du lot un peu pour comprendre ce qui fonctionne le mieux
Je ne pense pas que cela aidera beaucoup, surtout si on le compare aux performances de SqlBulkCopy .... –
@marc_s - J'ai trouvé la performance assez bonne, mais je n'ai jamais essayé SqlBulkCopy non plus. –
- 1. Outils de listage des accès à la base de données à partir du code .NET
- 2. insérer des enregistrements dans la base de données à partir d'un xml
- 3. Comment puis-je transformer la base de données à partir du serveur SQL 2005-2000
- 4. Insérer du code incorporé dans la base de données?
- 5. Enregistrer les données dans SQL 2000 à partir de la page asp.net en utilisant jquery (C#)
- 6. Insérer des enregistrements dans une base de données à partir d'une table de hachage
- 7. Enregistrement de plus de 1000 enregistrements dans la base de données à la fois
- 8. sélectionnez à partir du fichier de base de données d'accès et insérer sql Database
- 9. Comment INSÉRER plusieurs entrées à la fois dans une base de données MySQL
- 10. Comment importer des données à partir du fichier Excel 2007 xlsx dans la base de données SQL Server 2000?
- 11. comment appeler la procédure dans la base de données de manière asynchrone à partir du code java 1.4?
- 12. C# insérer la chaîne à la question de base de données
- 13. Comment insérer des données en bloc dans la table mysql d'asp.net à la fois
- 14. Sql 2000 base de données à Sql 2005 express db
- 15. comment insérer la valeur Textfield à la base de données en C# pour le code suivant
- 16. insérer des données à la base de données dans la performance de la boucle
- 17. Mise à jour en masse/Insérer des données dans la base de données SQL
- 18. Connexion à une base de données SQL externe à partir du code SharePoint
- 19. Insérer 100k lignes dans la base de données à partir du site Web
- 20. Code PHP Insérer des enregistrements vides dans la base de données MySQL
- 21. Importer la base de données à partir du fichier PROGRAMMATICALLY?
- 22. Insérer dans la base de données oracle
- 23. Migration d'une base de données à partir de SQL Server 2000 vers SQL Server 2005
- 24. Mise à jour de plusieurs enregistrements en lisant un enregistrement à la fois en C#, .Net-2005
- 25. enregistrer dans la base de données du serveur SQL à partir du côté client
- 26. Affichage d'images à partir de la base de données SQL
- 27. format de date à insérer dans la base de données
- 28. Insérer des données dans la base de données SQL Server à l'aide ADO.Net Dataset
- 29. Obtention du schéma XML à partir de la base de données MS SQL
- 30. Insérer texte DateTimePicker dans la base de données SQL
C'est la voie à suivre, pour sûr! –
SqlBulkCopy est sérieusement l'un des adaptateurs les plus sous-estimés dans l'espace de noms SqlClient - il est rapide comme l'éclair d'importer de grandes quantités de données. – SqlRyan