SSIS Design6:利用数据流
数据流利用内存来缓冲数据,并在内存中处理数据转换,由于内存的访问速度是非常快的,所以SSIS数据流转换性能是非常高效的。SSIS Engine将数据分批加载到内存中,当Data Flow将一批新的数据加载到内存时,下游转换组件会对已经加载到内存中数据进行处理,同时,目的组件会将处理完成的数据加载到Target Table中,数据的读取,转换和加载同时进行,这就是数据流的优势。
1,利用数据流,能够减少暂存和昂贵的disk IO 操作
在大量数据的ETL系统中,Disk IO是系统性能的bottlenect。相比内存 RAM,Disk IO的读取和写入速度非常慢,将内存缓冲区中的数据写入暂存表,再从暂存表中读取数据到内存中,不仅成倍增加了Disk IO,而且限制了数据流的并发处理能力。请记住,使用暂存表的场景是:ETL系统中存在大量数据的更新操作。这是由于Data Flow 没有基于集合的更新转换组件,OLEDB Command 转换组件是逐行对数据进行更新操作,使用暂存表,能够充分利用RDBMS对数据进行基于集合的更新操作的优势。如果ETL系统不存在大量数据的更新操作,请选择使用数据流来处理数据。
2,利用数据流,减少对RDBMS的依赖
使用Data Flow转换组件来联接和清洗数据是十分高效的,这是因为,数据的读取,转换和加载同时进行。RDBMS对数据的处理是原子性的,在数据被处理完成之前,是不能被其他SQL语句处理的,相反,数据流可以并行地处理数据的提取,清洗,联接和写入,因此,充分利用数据流的并发处理优势,会使数据整体的处理时间大幅减少。
3,利用RDBMS处理数据源
在使用Source适配器获取数据时,利用数据库的order by 子句进行排序,将会比Sort 转换更有效率;对于源是多表联接的查询语句,使用RDBMS获取数据将会更快。
SSIS Design6:利用数据流的更多相关文章
- SSIS技巧--优化数据流缓存
问题 我们经常遇到一种情况,在SSMS中运行很慢的一个查询,当把查询转化成从源到目的数据库的SSIS数据流以后,需要花费几倍的时间!源和数据源都没有任何软硬件瓶颈,并且没有大量的格式转换.之前看了很多 ...
- SSIS 控制流和数据流(转)
理解控制流和数据流的一个入口是看他们如何运行的.一个控制流任务是一个最小的执行单位,它的运行结果有成功,失 败,和完成,在运行它的下一个任务之前必须得到这些结果.在数据流任务中,转换时最基本的元素.一 ...
- SSIS 控制流和数据流
在SSIS的体系结构中,Package是SSIS的最重要的部分,从本质上来讲,Package是一个有序地执行任务的单元.Package的核心是控制流(Control Flow),用于协调包中所有组件的 ...
- SSIS中出现数据流数据源假死状态的解决办法
相信开发过Sql Server SSIS的人都遇到过在数据流中数据源假死的问题,特别是Excel Source特别容易假死,当job执行到数据流中的Excel Source时,既不报错也不执行,也没有 ...
- 微软BI 之SSIS 系列 - 利用 SSIS 模板快速开发 SSIS Package
开篇介绍 在做 ETL 项目的时候,往往很多 Package 的开发都是基于相同的模型和流程.比如在 Package 开始运行时需要向 Process Log 表中插入记录,在 Package 运行结 ...
- SSIS Design3:并发执行
1,利用优先约束来并发处理数据,Data Flow Task 和 Data Flow Task 1 是并发执行的,而 Data Flow Task2 必须等到 Data Flow Task 和 Dat ...
- 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架
一直准备写这么一篇有关 SSIS 日志系统的文章,但是发现很难一次写的很完整.因为这篇文章的内容可扩展的性太强,每多扩展一部分就意味着需要更多代码,示例和理论支撑.因此,我选择我觉得比较通用的 LOG ...
- BI 系列随笔列表 (SSIS, SSRS, SSAS, MDX, SQL Server)
微软 BI ETL 架构设计 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架 如何管理和记录 SSIS 各个 Task 的开始执行时间和结束时间以及 Task 中添加|删除|修改 ...
- 管理SSIS 日志
转自:http://www.cnblogs.com/biwork/p/biworklog.html 一直准备写这么一篇有关 SSIS 日志系统的文章,但是发现很难一次写的很完整.因为这篇文章的内容可扩 ...
随机推荐
- Spring 使用 SLF4J代替 Commons Logging 写日志 异常
项目的日志更换成slf4j和logback后,发现项目无法启动.错误提示 Caused by: java.lang.NoClassDefFoundError: Lorg/apache/commons/ ...
- C++: Virtual Table and Shared Memory
See at: 补充栏3: C++对象和共享内存 (叙述内容和Link1的内容基本一致) <C++网络编程 卷1:运用ACE和模式消除复杂性> <C++ Network Progra ...
- HTC辟谣: HTC Vive2不会在CES 2017上公布
HTC官方:第二代Vive不会在CES 2017上发布.曾有消息称HTC Vive的下一代--Vive 2将在CES 2017上展出能成为首个4K头显以及无线头显.但日前HTC官方给于否认,此消息不实 ...
- [翻译svg教程]svg中矩形元素 rect
svg 元素<rect> 是一个矩形元素,用这个元素,可以你可以绘制矩形,设置矩形宽高,边框的宽度颜色,矩形的填充颜色,是否用圆角等 rect 示例 <svg xmlns=" ...
- BestCoder Round 69 Div 2 1001&& 1002 || HDU 5610 && 5611
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5610 如果杠铃总质量是奇数直接impossible 接着就考验耐心和仔细周全的考虑了.在WA了三次后终于发 ...
- web存储
1. cookie: 如果想将cookie取到,可以通过document.cookie;取到的是所有的cookie数据 他是一直保存在网页中的:他有一个时间的限制,如果时间过期,则删除 写入:docu ...
- Jsonp原理就是这么简单
原理就是:包裹数据的js数据文件,自动执行,找到目标函数,通过传参,把数据注入进去. 当你打开本篇博文,证明你已经大体知道了Jsonp的作用了. 但如果需要我介绍一下,我也可以简单介绍: 简单说,就是 ...
- asp.net mvc添加多条数据到数据库
mvc的视图太强大了,个人刚刚接触.(初级菜鸟,懂的不多,往大神们指点)需求是,客户点击添加按钮弹出一个框选择产品后直接添加到表单中,在表单可以自己更改产品的数量,以及一些信息.mvc表单提交的时候只 ...
- Python之路Day15--CSS补充以及JavaScript(一)
一.上节作业问题: 上节作业问题: 1.css重用 <style> 如果整个页面的宽度 > 900px时: { .c{ 共有 } .c1{ 独有 } } .c2{ 独有 } < ...
- LINUX 下时间转换为秒数
linux下时间是从1970.1.1开始算的秒数 //转来自网址 http://blog.csdn.net/wind19/article/details/6579495 $ dateTue Feb 3 ...