如何提高ETL性能?

时间:2017-05-29 01:04:01

标签: etl rdbms data-warehouse

背景资料:

我有一个传统的ETL(在SQL Server上),大约需要6个小时才能完成。我希望优化ETL。以下是我已经采取的步骤:

  1. 从逻辑中删除了不必要的CURSOR。对于我无法删除的剩余部分,我使用了READ_ONLY,FAST_FORWARD,INSENSITIVE。

  2. 发生了一些数据排序,我将其删除。

  3. 使用编译器提示或加入提示调整长时间运行的SQL查询。

  4. 删除了从源中提取的不必要的列。

  5. 也对表格进行了分区。我使用分区切换确实提高了性能。

  6. 我是否还有其他方法可以帮助提高ETL的速度?此时,我们无法选择添加更强大的硬件资源或迁移到Hadoop。

    任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

几个问题: 您的源SQL Server数据库? 您是否查看了目的地数据库? 这是一个维度数据仓库还是规范化数据存储?

如果您对源和目的地没有太多了解,我可能会推荐其他一些事项:

1)删除不需要的查找转换(如果有的话)。

2)如果你能负担得起,我会考虑在你的一些源表上创建索引。并不总是可行,但这有助于相信我。

3)删除不需要的UNION

如果可能,请分享有关您的ETL /数据库架构的更多信息,我相信这里的许多大脑将能够带来更多智慧。

干杯 尼西