Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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
Sql server SQL Server-是否插入大量行?_Sql Server_Performance_Sql Server 2005 - Fatal编程技术网

Sql server SQL Server-是否插入大量行?

Sql server SQL Server-是否插入大量行?,sql-server,performance,sql-server-2005,Sql Server,Performance,Sql Server 2005,我在这里读了很多关于这个主题的答案,但是每个人都建议使用.net中的BCP | | SqlBulkCopy类 我有一个查询,它将从不同表中选择的5个并集插入targetTable 我对所选的表有正确的索引。并且在targetTable上只有1个聚集标识索引。然而,这需要很长的时间~25分钟。我说的是5M行x20列 当我看sp_who2时,大多数时候,它是暂停的 我想使用大容量复制,但不是从.net数据库获取数据-因此我不需要转到C 问题 如何在select命令中使用大容量插入无bcp? 还有,为

我在这里读了很多关于这个主题的答案,但是每个人都建议使用.net中的BCP | | SqlBulkCopy类

我有一个查询,它将从不同表中选择的5个并集插入targetTable

我对所选的表有正确的索引。并且在targetTable上只有1个聚集标识索引。然而,这需要很长的时间~25分钟。我说的是5M行x20列

当我看sp_who2时,大多数时候,它是暂停的

我想使用大容量复制,但不是从.net数据库获取数据-因此我不需要转到C

问题

如何在select命令中使用大容量插入无bcp? 还有,为什么大部分时间都是暂停的?我怎样才能赋予我的查询更高的优先级? 多谢各位


p、 由于安全限制,我不能在这里使用bcp。。。我没有运行此操作的权限。

你是对的:这比平常需要更长的时间。你每秒有3k行。你应该很容易获得每秒10公里或20公里的速度。在最佳情况下,每个CPU核心每秒200k

我怀疑你是在整张桌子上插东西,而不仅仅是在最后。在这种情况下,每秒3k行并不罕见

在任何情况下,批量复制都无法帮助您。它的插入速度并不比仅限服务器的insert语句快


不过,您可以使用多个线程进行插入。将行源划分为N个不同的范围,并从单独的连接同时插入每个范围。如果您是CPU受限的,这将有所帮助。如果您是IO绑定的,则不会出现此问题。

您是否考虑过在SQL server中使用“导出数据向导”?您还可以将其另存为SSIS包,并在以后需要时使用。它支持为源数据指定自定义查询。@用于开始整个过程的命令来自网页上的一个按钮……该按钮启动sp,该sp开始将数据提取到目标表中。。。所以我不认为它在这里是可以实现的。你可以在运行Sql Profiler时尝试一下coon的建议,看看它是如何实现的。你是什么意思?在整个表中插入?在随机位置,而不是在末尾。这是一个id标识为1,1的普通表。怎么可能不在最后呢?嗯,在这种情况下,我不知道为什么它对你来说那么慢。您需要发布更多代码和insert语句的执行计划作为屏幕截图。也许我能发现一些问题。