我有一个任务,它使用数据流任务将记录从 Oracle db 提取到我们的 SQL。该套餐每天运行约 45 分钟。此包将刷新约 15 个表。除了一个,其他都是增量更新。所以几乎每个任务都运行 2 到 10 分钟。
完全更换的一包运行长达 25 分钟。我想调整此数据流任务以使其运行得更快。
表中只有 400k 行。我确实阅读了一些关于 DefaultBufferSize 和 DefaultBufferMaxRows 的文章。我有以下疑问。
最佳答案
作为一般做法(并且如果您有足够的内存),少量的大缓冲区比大量的小缓冲区要好,但直到您将页面分页到磁盘(这显然是不好的)
要测试它,您可以记录事件 BufferSizeTuning,它会显示每个缓冲区中有多少行。
此外,在开始调整缓冲区的大小之前,您可以做出的最重要的改进是通过删除不需要的列和适本地配置数据类型来减小每行数据的大小。
关于sql - SSIS DataFlowTask DefaultBufferSize 和 DefaultBufferMaxRows,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15128044/