一,数据流设计优化

数据流有两个特性:流和在内存缓冲区中处理数据,根据数据流的这两个特性,对数据流进行优化。

1,流,同时对数据进行提取,转换和加载操作

流,就是在source提取数据时,转换组件处理数据,同时destination加载数据,数据在不同组件之间,同时被处理。

所有的RDBMS操作都是同步的,基于集合的操作要求在将数据用于其他目的之前,该操作必须完成,这是由事务的原子特性决定的,然后数据流有流的特性,当数据流通过pipeline时,数据流task可以并行地处理链接,查询以及其他转换操作。在设计Data Flow时,要充分利用流的特性,限制同步过程。

例如,执行insert语句向Table1中插入数据,然后再运行update语句更新Table1,这意味着,直到insert脚本完成之前,是不能运行update语句的,insert 和 update 语句是同步的。

优化的设计方案是;设计一个数据流来实现与insert 语句相同的逻辑,同时使用转换组件实现与Update语句相同的逻辑。

这种设计方案不会使用TSQL的insert 和 update语句,但是使用Data flow Task的Source,conversion 和 destination,充分利用了数据流的流的特性。在数据提取的同时,转换组件对数据流进行转换,实现数据的“insert”和“Update”同时进行,减少整体的处理时间。

有时,使用RDBMS会更快,例如,如果表中有合适的index,使用order by 子句对数据进行排序,会比SSIS 排序转换要快很多。

2,SSIS Engine使用内存缓冲区来暂时存储数据流

SSIS Engine使用内存缓冲区来暂时存储数据流,对驻留在内存中的数据执行大多数的转换操作,这使得SSIS的数据处理效率非常高,应避免SSIS将数据流·驻留在Disk或其他IO速度非常低的存储介质上。

当Server内存不足时,SSIS就将缓冲区复制到Disk中,Disk IO的速度远低于RAM的IO 速度,这会导致package的运行速度将大大降低,其中最密集的内存转换时阻塞和半阻塞转换。所以,必须监控阻塞和半阻塞转换的内存使用情况,避免出现内存过低的情况。

二,数据流转换优化

1,缓冲区和执行树

针对数据流中的每个执行树,都使用了一个不同的缓冲区配置文件,这意味着执行树下游的组件可能会根据处理逻辑的不同而需要不同的Column set。因为数据流的缓冲区的性能直接和缓冲区的行宽相关联,窄缓冲区可以容纳更多的数据行,从而允许更高的数据流吞吐量。

上游执行树所使用的columns可能并不是下游执行树所需要的,当执行树中的列不在被任何下游执行树使用时,SSIS会提供相应的警告。每一个警告表示某一列在下游组件中不再被使用,英爱在初始使用后,从Pipeline中删除。任何异步转换输出的组件,都可以选择删除输出中的column。

2,Engine Thread

通过为数据流增加更多的执行线程,提高CPU的利用率。将数据流属性EngineThreads属性的值设置为大于执行树的数量和组件的数量,从而确保SSIS有足够的线程可供使用。

最新文章

  1. arcgis api for js入门开发系列七图层控制(含源代码)
  2. 好神奇的代码,可以让匿名用户对特定SharePoint 列表拥用添加列表项的权限哦
  3. jQuery给标签写入内容
  4. 最万能的解决mysql数据库的各种问题的办法
  5. Java学习-044-文件拷贝
  6. Xamarin.iOS项目编译提示Could not AOT the assembly
  7. 解析使用ThinkPHP应该掌握的调试手段
  8. [SAP ABAP开发技术总结]Function远程、同步、异步调用
  9. 2016030202 - github中sshkey信息设置
  10. Bzoj 1696: [Usaco2007 Feb]Building A New Barn新牛舍 中位数,数学
  11. Entity Framework Core 2.0 数据库迁移
  12. SpringCache实战遇坑
  13. BZOJ3531[Sdoi2014]旅行——树链剖分+线段树
  14. CentOS 7 yum nginx MySQL PHP7 简易环境搭建(精)
  15. Java基础——Oracle(八)
  16. 2D情况下,复数的意义代表旋转
  17. mysql 简单主从
  18. 25、Python垃圾回收机制?
  19. 设计模式--装饰模式C++实现
  20. 使用jQuery实现option的上移和下移

热门文章

  1. mac 安装brew
  2. 配置gradle.properties
  3. 【BZOJ1662】[Usaco2006 Nov]Round Numbers 圆环数 数位DP
  4. 四道简单DP
  5. 导航菜单跳转后,新页面上菜单CSS选定
  6. JAVA中使用DOM解析XML文件
  7. 【Python】引用计数
  8. 启动项目的时候报驱动错误: not support oracle driver 1.0
  9. 常用的一些复杂SQL语句
  10. 移动开发可能用到的css单位