一,数据流设计优化

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

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有足够的线程可供使用。

SSIS Data Flow优化的更多相关文章

  1. SSIS Data Flow 的 Execution Tree 和 Data Pipeline

    一,Execution Tree 执行树是数据流组件(转换和适配器)基于同步关系所建立的逻辑分组,每一个分组都是一个执行树的开始和结束,也可以将执行树理解为一个缓冲区的开始和结束,即缓冲区的整个生命周 ...

  2. SSIS ->> Data Flow Design And Tuning

    Requirements: Source and destination system impact Processing time windows and performance Destinati ...

  3. SSIS的 Data Flow 和 Control Flow

    Control Flow 和 Data Flow,是SSIS Design中主要用到的两个Tab,理解这两个Tab的作用,对设计更高效的package十分重要. 一,Control Flow 在Con ...

  4. SSIS ->> Control Flow And Data Flow

    In the Control Flow, the task is the smallest unit of work, and a task requires completion (success, ...

  5. 微软BI 之SSIS 系列 - 理解Data Flow Task 中的同步与异步, 阻塞,半阻塞和全阻塞以及Buffer 缓存概念

    开篇介绍 在 SSIS Dataflow 数据流中的组件可以分为 Synchronous 同步和 Asynchronous 异步这两种类型. 同步与异步 Synchronous and Asynchr ...

  6. [转]Data Flow How-to Topics (SSIS)

    本文转自:http://technet.microsoft.com/en-us/library/ms137612(v=sql.90).aspx This section contains proced ...

  7. Data Flow的Error Output

    一,在Data Flow Task中,对于Error Row的处理通过Error Output Tab配置的. 1,操作失败的类型:Error(Conversion) 和 Truncation. 2, ...

  8. Data Flow ->> Union All

    Wrox的<Professional Microsoft SQL Server 2012 Integration Services>一书中再讲Merge的时候有这样一段解释: This t ...

  9. Data Flow ->> DQS Cleansing

    Data Quality Services(DQS)是SQL Server 2012引入的一大特性.这个服务的任务是为了实现客户端数据标准化和清理错误数据的.比如客户端数据容易因为用户输出诸如像城市名 ...

随机推荐

  1. my links

    如何解決MySQL 開動不到的問題 MySQL start fail 10 BEST JQUERY FILE UPLOAD PLUGINS WITH IMAGE PREVIEWS Spring MVC ...

  2. 基于Proteus仿真的Arduino学习(2)——LED点阵探究A(LED点阵基础)

    一.前言: 随着LED的普及,以LED点阵为基础的显示设置层出不穷.例如,公交车的线路提示牌.高速公路的信息提示牌,安装在大楼上的广告屏幕等.下面,我们将由简单到复杂地探索各种LED点阵的使用方法,同 ...

  3. fly bird

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 求50-100内的素数(java)

    实现代码: public class sushu { public static void main(String[] args) { for(int i=50 ; i<=100; i++){ ...

  5. NOIP2016普及总结

    ---恢复内容开始--- 当时我说如果不出意外有385,结果就这么跪在了第二题,惨啊 本来以为发挥算正常,结果这发挥太不正常了 [T1] 水题啊[趴 注意下细节就好考你会不会写代码. [T2] 这题大 ...

  6. Curator leader 选举(一)

    要想使用Leader选举功能,需要添加recipes包,可以在maven中添加如下依赖: <dependency> <groupId>org.apache.curator< ...

  7. Jquery、简单的下拉列表、网页左部导航菜单

    简单的下拉菜单.左部导航使用. 2016-5-13 记 效果图如下: <!DOCTYPE html> <html lang="en"> <head&g ...

  8. mac svn命令使用

    对mac不熟悉 ssd硬盘又小 不想装版本管理软件. #创建目录 svn mkdir svn://ip.xxx.xxx.xxx/client/ios/opengl/imageToll -m " ...

  9. Xcode 调试技巧

    一 NSLog调试 官方文档:Logs an error message to the Apple System Log facility. 即NSLog不是作为普通的debug log的,而是err ...

  10. react-native 环境搭建以及项目创建打包

    参考:http://www.lcode.org/%E5%8F%B2%E4%B8%8A%E6%9C%80%E8%AF%A6%E7%BB%86windows%E7%89%88%E6%9C%AC%E6%90 ...