1

我从 sql server A 到 B 提取了 5 个表。每次提取都是一个连接多个表的查询。

我通常在 sql server 导入向导中运行这些提取。我现在将它们放入 SSIS(5 个并行提取)中,我注意到它要慢得多(至少慢 50 倍)。

在此处输入图像描述

我想知道我在这里做流行/最佳实践吗?并知道为什么它很慢?谢谢


谢谢大家的讨论

我按照 JodyT 的想法,从导入向导生成了 SSIS,发现了不同之处:

在我应该使用的目的地中Table or view - fast load- 当我从Table or view这里更改时,我的速度类似于导入向导。 在此处输入图像描述

4

1 回答 1

0

就像这样的任何问题一样,您所做的是否是“最佳实践”取决于。您收集数据的查询并不是考虑性能的唯一组件。其他需要考虑的因素是:

  1. 正如其他人所暗示的那样-您的硬件(目的地,来源,中间网络等...)
  2. 您的数据(整体大小、深度、宽度)
  3. 你的日程安排(这是唯一运行的事情吗?必须在给定的窗口内完成吗?等等......)

例如,如果目标或源或网络硬件被其他人大量使用,您可能根本不想使用线程来最小化并发使用量。相反,如果硬件专门用于计划的批处理活动,那么您可能确实希望将数据移动分成线程并尽可能多地使用硬件来减少执行此任务所花费的总时间。

如果无法了解所有这些信息并做出最佳决定,您还可以尝试逐步增加线程数。首先,评估“快”和“慢”对您的环境意味着什么。当您只运行一个线程时,传输速率是多少(如果您还没有从了解硬件中知道这一点)。然后添加另一个线程,重新评估传输率。然后是另一个,依此类推,直到您发现移动数据的总时间减少。增加,直到您知道您正在为您的硬件、在您的网络上、在您的数据计划内使用最佳线程数。

你不会在这里得到一个明确的答案(或者至少,你不应该:))关于什么对你来说是“最好的”。太多的分享和考虑。

于 2019-08-19T18:26:28.120 回答