繁体   English   中英

在SQLCLR中的SqlBulkCopy存储过程?

[英]SqlBulkCopy in SQLCLR stored procedure?

我创建了从外部服务检索大量数据的SQLCLR存储过程。 是否可以将数据批量复制到同一SQLCLR存储过程中的新表中?

在这里,我将讨论如何在SQL内部公开数据的一般问题。 可以做的是将您的存储过程重写为一个表值CLR函数 ,该函数可以流式传输结果。 然后,您可以像这样使用:

insert into MyTable(id, name)
select id, name from dbo.MyTableFunc(agrs) 

对此的基础结构进行了很好的优化,我使用了它,并且当我停止优化时,很快就能够将其每秒提高到约3k行,而瓶颈在于通过网络获取行。

将服务公开为功能的好处是,您还可以直接在查询和联接中使用它,而无需先将其存储到磁盘上的表中(慢速磁盘,事务日志,锁定yadayada的额外步骤)。 它也会优雅地取消,您可以top 100

如果您告诉我们更多/提供一些代码,我们可以提供更多帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM