一,数据流设计优化

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

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. SDOI2009

    1226: [SDOI2009]学校食堂Dining Description 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴 ...

  2. HTML5 与 CSS3 jQuery部分知识总结

    一.    HTML5 为什么需要HTML5 什么是HTML5 HTML5现状及浏览器支持 HTML5优点与缺点 HTML5语法规则与文档声明 HTML5新增表达标签 HTML5多媒体组件 HTML5 ...

  3. Spring AOP详解

    一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...

  4. WPF上传文件到服务器

    利用WebClient 上传文件到服务器 创建一个空网站,创建一个UploadFile.aspx项, 服务器报500错误:检查文件保存路径是否存在,检查文件大小限制 protected void Pa ...

  5. C++ Primer Plus 第六版笔记

    C++ Primer Plus 第六版笔记 关于对象声明的思考 转自:http://www.cnblogs.com/weiqubo/archive/2009/11/02/1930042.html C+ ...

  6. 4_jquery

    官网:www.jquery.com 兼容: 1.jquery-3.1.0.js :form.attr("checked","false")无效 2.firefo ...

  7. [LintCode] Sort List 链表排序

    Sort a linked list in O(n log n) time using constant space complexity. Have you met this question in ...

  8. 【转】Android Studio-1.2版本设置教程

    如果重新安装Android Studio的话要重新配置风格选项啥的,这篇是个很好的教程,原文链接:http://blog.csdn.net/skykingf/article/details/45485 ...

  9. Kafka设计解析(一)- Kafka背景及架构介绍

    本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/01/02/Kafka深度解析 背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅 ...

  10. Android分享一款漂亮的折叠书架菜单

    一个Android折叠书架菜单,效果极佳,给人的视觉感觉很好,便于使用. FoldingMenu