SSIS DataFlowTask DefaultBufferSize 和 DefaultBufferMaxRows

Max*_*mus 5 sql ssis bids dataflowtask sql-server-2008

我有一个任务,它使用数据流任务将记录从 Oracle db 提取到我们的 SQL。该套餐每天运行约 45 分钟。此包将刷新约 15 个表。除了一个,其他都是增量更新。所以几乎每个任务都运行 2 到 10 分钟。

完全更换的一包运行长达 25 分钟。我想调整此数据流任务以使其运行得更快。

表中只有 400k 行。我确实阅读了一些关于 DefaultBufferSize 和 DefaultBufferMaxRows 的文章。我有以下疑问。

  1. 如果我可以将 DefaultBufferSize 设置为 100 MB,是否有任何地方可以查看或分析我可以提供多少。

  2. DefaultBufferMaxRows 设置为 10k。即使我给了 50k 并且我为 DefaultBufferSize 提供了 10 MB,如果它只能容纳大约 20k,那么 SSIS 会做什么。只是忽略那些 30k 记录还是它仍然会拉出所有那些 50k rocords(假脱机)?

  3. 我可以使用日志记录选项来设置适当的限制吗?

Die*_*ego 4

作为一般实践(如果您有足够的内存),较少数量的大缓冲区比大量的小缓冲区更好,但直到您分页到磁盘为止(由于明显的原因,这很糟糕)

要测试它,您可以记录事件 BufferSizeTuning,它将显示每个缓冲区中有多少行。

此外,在开始调整缓冲区大小之前,您可以做出的最重要的改进是通过删除不需要的列并适当配置数据类型来减小每行数据的大小。