Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中创建数据子集的最佳实践#_C#_Sql_Sql Server_Sql Server 2008_Tsql - Fatal编程技术网

C# 在C中创建数据子集的最佳实践#

C# 在C中创建数据子集的最佳实践#,c#,sql,sql-server,sql-server-2008,tsql,C#,Sql,Sql Server,Sql Server 2008,Tsql,在处理以下场景时,什么是最佳实践 我有一个总共约600万条记录的数据集,分为30多个表,有些表有几十万条记录。我需要使用一个一次只允许插入200条记录的api 我正在按表格分解插入内容。现在我正在考虑我想到的前两个选择。我可以获取该表的完整数据集,然后在C#循环中一次只插入200个数据集。或者我可以多次调用数据库,一次捕获200条记录。创建我的对象并调用API以插入我的记录。我想我可以在插入其他记录时进行下一次数据库调用。使用多个线程,每次读取和插入200条。这不仅会更快,而且您不会因为无法在碎

在处理以下场景时,什么是最佳实践

我有一个总共约600万条记录的数据集,分为30多个表,有些表有几十万条记录。我需要使用一个一次只允许插入200条记录的api


我正在按表格分解插入内容。现在我正在考虑我想到的前两个选择。我可以获取该表的完整数据集,然后在C#循环中一次只插入200个数据集。或者我可以多次调用数据库,一次捕获200条记录。创建我的对象并调用API以插入我的记录。我想我可以在插入其他记录时进行下一次数据库调用。

使用多个线程,每次读取和插入200条。这不仅会更快,而且您不会因为无法在碎片内存上分配连续块而在如此大的数据集上遇到潜在问题。

如果这些表完全独立,您可以在此基础上进行分治,并在不同线程上同时对不同的表进行多个插入。但是,如果没有看到所有的模式,就很难说清楚。如果你需要插入600万行,一次执行200行,并分别调用数据库,那将是30000个不同的调用,这对我来说太多了。你可以将DataAdapter设置为200。为什么你要从C#调用数据库,然后将那么多行插入数据库?这可以全部从SQL内部或使用SSIS来完成吗?或者是否有UI组件来完成?请详细说明目标环境、200条记录的限制以及是否对异步调用和同时连接有限制。谢谢hyru!我倾向于这样做,但正如Michael在评论中所说,这导致了大量的数据通话。因为这是我要走的路线,我想我会将这些链接提供给任何会这样做的人。有很多好消息,我先去了