我正在从SQL Server 2012中读取一些数据。源表有大约6亿行,其中两个令人头疼的列是nvarchar(max)。 问题:包含这些blob列时,性能从每秒100k行降至每秒800行。在SSIS中使用blob可以让某些事情变得更快吗?
varchar(max)的最大数据长度为250字节,avg数据长度为50字节。内容是以文本形式存储的XML。我可能会将它们转换为nvarchar(2000),但我稍后需要使用包含更大xml文本对象的表。
目的地只是一个RowCount。
我看到的是
在我看来,SSIS根本不能很好地处理blob。它非常保守(因为它无法知道数据从缓冲区占用多少空间)。从文档我可以看到SSIS处理blob不同于ordinairy列,它们可能存储在磁盘上,再次读回内存然后发送到管道。无论发生什么,表演都只是一场灾难。
我玩过缓冲区大小和maxbufferrows,它并没有真正发挥那么大的作用。无论我选择做什么,平均表现都是垃圾。
我用谷歌搜索“一切”,这是我的最后一招。到目前为止我错过了什么?