我创建了从外部服务检索大量数据的SQLCLR存储过程。是否可以将数据大容量复制到同一SQLCLR存储过程中的新表中?
发布于 2013-02-10 22:20:33
我将在这里扩展到如何在SQL中公开来自服务的数据的一般问题。可以做的是将您的存储过程重写为流结果的Table Valued CLR function。然后,您可以像这样使用:
insert into MyTable(id, name)
select id, name from dbo.MyTableFunc(agrs) 这方面的基础设施得到了很好的优化,我使用了它,当我停止优化时,它很快就能达到每秒3k行,瓶颈是通过网络获取行。
将服务公开为函数的好处是,您还可以在查询和连接中直接使用它,而不需要首先将其存储到磁盘上的表中(对于慢速磁盘、事务日志、锁yadayada,需要额外的步骤)。它还可以优雅地取消,您可以执行top 100等操作。
如果您告诉我们更多/提供一些代码,我们可以提供更多帮助。
https://stackoverflow.com/questions/13605476
复制相似问题