作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在关注 Rainer Stropek 的这篇优秀帖子1. 创建自定义 SSIS 数据流项目 & 2. 从 Azure 表存储中提取数据。
http://www.software-architects.com/devblog/2010/11/12/Custom-SSIS-Data-Source-For-Loading-Azure-Tables-Into-SQL-Server
我将粘贴任何试图回答我的问题的人都会感兴趣的代码:
GenericTableContext context = new GenericTableContext(cloudStorageAccount.TableEndpoint.AbsoluteUri, cloudStorageAccount.Credentials);
public override void PrimeOutput(int outputs, int[] outputIDs, PipelineBuffer[] buffers) {
IDTSOutput100 output = ComponentMetaData.OutputCollection[0];
PipelineBuffer buffer = buffers[0];
foreach(var item in this.context.CreateQuery<GenericEntity>("SomeTable") {
buffer.AddRow();
for (int x = 0; x < columnInformation.Count; x++) {
var ci = (ColumnInfo) columnInformation[x];
var value = item[ci.ColumnName].Value;
if (value != null) {
buffer[ci.BufferColumnIndex] = value;
} else {
buffer.SetNull(ci.BufferColumnIndex);
}
}
}
最佳答案
每个缓冲区都将刷新,更准确地说,一旦它完成了通过管道的旅程,就会被重用。因此,在这种情况下,SSIS 会为您管理内存,尽管您必须确保分配了正确的行和内存大小(您可以在日志记录中打开缓冲区调整事件以查看您的包是否发生这种情况)。通常人们会调整内存并没有意识到它是数据流中的每个组件,随后包花费大量时间试图过度分配大量内存。
如果您的组件是目的地,您也可能没有释放连接,您需要使用连接管理器或实现资源管理代码以在脚本组件中进行清理。
关于memory-leaks - PipelineBuffer 不释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16197679/
我正在关注 Rainer Stropek 的这篇优秀帖子1. 创建自定义 SSIS 数据流项目 & 2. 从 Azure 表存储中提取数据。 http://www.software-architect
我试图从脚本组件转换为 SSIS 的 PipelineBuffer 中获取列名称和索引,并将它们添加到哈希表中。我知道这是可能的,如果我将我的类从:public class ScriptMain :
我是一名优秀的程序员,十分优秀!