【发布时间】:2013-02-28 05:18:49
【问题描述】:
我有一个任务,它使用数据流任务将记录从 Oracle db 拉到我们的 SQL 中。这个包每天运行大约 45 分钟。这个包将刷新大约 15 个表。除了一个,其他都是增量更新。所以几乎每个任务都运行 2 到 10 分钟。
完全替换运行长达 25 分钟的一个包。我想调整这个数据流任务以更快地运行。
表中只有 400k 行。我确实阅读了一些关于 DefaultBufferSize 和 DefaultBufferMaxRows 的文章。我有以下疑问。
如果我可以将 DefaultBufferSize 设置为 100 MB,有没有地方可以查看或分析我可以提供多少。
DefaultBufferMaxRows 设置为 10k。即使我给了 50k 并且我为 DefaultBufferSize 提供了 10 MB,如果它只能容纳大约 20k,那么 SSIS 会做什么。只是忽略那些 30k 记录,否则它仍然会拉所有那些 50k rocords(Spooling)?
我可以使用日志记录选项设置适当的限制吗?
【问题讨论】:
-
感谢您的回复。我同意这种方法将来肯定会对我有所帮助。但是那篇文章没有回答我的问题。如果您对 DefaultBufferSize 和 DefaultBufferMaxRows 有所了解,请回复。
-
这里的大多数读者都不知道 Lakh 是什么。 (如果我没记错的话是 100,000)。
-
仅供参考,根据我的经验,
DefaultBufferSize = 10000通常对于网络传输来说太高,而不是太低。尝试将其设置为 100。 -
嗨 Young- 是的,你是对的。每个缓冲区中仅传输 2.5k 条记录。因此,在我看来,除非我们提供的行数非常少,否则我们提供多少 DefaultBufferMaxRows 并不重要。
标签: sql sql-server-2008 ssis bids dataflowtask