多少易是当缓冲区中形成的。DefaultBufferSize 属性定义任务采取缓冲区的默认大小。

1. 告诉句优化

得安排数据流任务的下列属性,这些性都见面对性有震慑:

1.1. 索引起重建

从一个生出3亿漫长记下之大表中抽取数据,起初,当SSIS包启动时一切正常,数据要预期的那样在转换,但性能开始逐步下降,数据易速率直线下滑。通过分析,我们发现目标表有一个主聚集键和个别单非聚集键,因为大气数码插入这个发明,导致其索引碎片水平上了85%-90%。我们采用索引在线重建特性重建/重组索引,但以加载中,每过15-20分钟,索引碎片水平还要返回90%,最终数额易和并行执行的以眉目引重建进程花了12-13单钟头,远远出乎了咱们的意料。

咱们纪念发出了一个主意,当转换开始前,我们将目标表的目全部删掉,转换了后同时再次重复创设索引,通过如此处理后,整个换过程花了3-4钟头,完全符合我们的料想。

举经过本身画在底下的觊觎中了。因此自提议一旦可能,在插入数据前,删掉目标表上的装有索引,特别是插入雅数据量时

图片 1

为缓冲区数据(BufferTempStoragePath
属性)和包含二前行制大型对象 (BLOB) 数据的列(BLOBTempStoragePath
属性)指定临时存储位置。默认情况下,这些性包含 TEMP 和 TMP
环境变量的价。您或许想指定不同或另行快之硬盘驱动器上的其他文件夹来存放在临时文件,或用她分布在多独驱动器上。可以指定多个目录,并就此分号来分隔这些目录名。

1.2. 免采用select *

SSIS的数据流任务(Data Flow Task,DFT)使用一个缓冲区作为数据传和转换的中转站,当数从源表传输到对象表时,数据首先登缓冲区,数据易是在缓冲区中成就的,转换了后才会刻画副到对象表中。

缓冲区的深浅为服务器硬件本身限制,它要估算行的高低,行大小是经过一行中负有列大小的最为老值求和得出的,因此列数越多,意味着进入缓冲区的施行就是见面更加少,对缓冲区的需求就会见越加多,性能就会下跌。因此转换时最为好强烈指定要更换到目标表的排列。即使你待源表中之有着列,你吗相应当select语句被显然指定列的称谓,如果你用select *,它见面绕到源表收集列的头版数据,SQL语句执行时本就是会长一些

倘您用目标表不欲的排列也开了变,SSIS将会晤弹来警示提示信息,如:

图片 2

当你当OLEDB源中利用“表或视图”或“来自变量的表名或看图名”数据访问模式时一旦小心,它的一言一行跟select *平等,都见面将兼具列进行更换,当你真要用源表中之所有列普转换到对象表中时,你可采用这种办法

透过设置
DefaultBufferSize 属性定义任务使用缓冲区的默认大小,并通过设置
DefaultBufferMaxRows 属性来定义每个缓冲区中最可怜的行数。默认缓冲区大小也
10 MB,最老缓冲区大小为 100 MB。默认最大行数为 10,000。

2. OLEDB靶设置的影响

下面是同组会潜移默化数易性能的OLEDB目标设置:

  多少看模式:这个装置提供“快速加载”选项,它采用BULK INSERT语句以数据形容副目标表中,而未是粗略地运用INSERT语句(每次插入一行),因此,除非你发独特要求,否则不要转移这个高速载入默认选项项。

  封存标识**(保持一致性)**:默认设置是无见面检讨的,这表示目标表(如果她起一个标识列)将会创造和谐的标识值,如果你检查是设置,数据流引擎将会确保源标识值受到保障,会往目标表插入相同之价值。

  保留**Null(保持空值)**:默认设置也是未见面检讨的,这意味来源表中之空值将会插入到对象表中。

  表锁:默认设置是只要反省的,建议维持默认设置,除非是同样时刻还产生其它进程使以及一个发明,指定一个表锁将见面获任何表底访问权,而未是发明中多行的访问权,这万分可能会见引发相关反应。

  检查约:默认设置是如果反省的,如果你能够保证写入的数额未会见背离目标表上的格,建议不用检查,这个装置会指定数量流管道引擎验证写副到目标表的数量,如果不反省约,性能会发酷死提升,因为省去了自我批评的开发。

 

经过设置 EngineThreads
属性来装任务在实行过程中不过使用的线程数。此属性也数流引擎提供关于使用线程数的建议。默认值为
5,最小值为
3。但是,不论这属性值为小,引擎都非会见动过该所用的线程数。如果用避免出现问题,引擎所采用的线程数为或会见超越此属性指定的线程数。

3. 各批插入和太酷插入设置影响

指令数据流任务是否坐优化模式运作(RunInOptimizedMode
属性)。优化模式会从数额流删除不用的排、输出及零部件,从而加强性能。

3.3. 列批插入行数设置的影响

各级批插入的行数:这个装置的默认值是-1,意味着每个输入行都被看作是一个批次,你可转这个默认行为,将具有行分成多单批次插入,值就同意正整数,它指定每一样批判次包含的极大行数。

 注意

可以在 Business Intelligence Development Studio 中的项目级设置同名属性 RunInOptimizedMode,以指示调试过程中数据流任务以优化模式运行。此项目属性在设计时将覆盖数据流任务的 RunInOptimizedMode 属性。

3.4. 绝要命插入行数设置影响

无限可怜插入提交大小:这个装置的默认值是“2147483647”,它指定同不好提交的不过大行数,你可修改者价,注意,如果是值设得无比小,会促成提交次数多,但这么会自由工作日志与tempdb的下压力,因为大批量插入数据常常,对事情日志与tempdb的下压力是蛮充分的

 

地方两单装于了解改善tempdb和业务日志的特性是特别重大的,例如,如果您保持最充分插入提交大小的默认值,在抽取期间业务日志与tempdb会不断转换死,如果你导大批量数额,内存很快就会见消耗光,抽取就会见砸,因此最好好因你自我之条件呢那个安装一个合理的价。

调缓冲区大小

4. SQL Server目标设置

而你的目标是本地数据库,建议您利用SQL Server目标,它提供了和Bulk Insert任务类之数插入性能,并提供了某些额外增强。使用SQL Server目标,在形容副目标表之前若可以针对数码做转换操作,但Bulk Insert任务是坏的,除了OLEDB目标可用的选项项外,SQL Server目标还有再多选择项,如图1所显示。例如,你可指定是否接触目标表上的插触发器,默认情况下,这个选项设置也“false”,意味着不见面沾目标表上的触发器,如果启用触发器,将会见招性能降低,但为强制实时数据及作业规则,触发器是不可避免的。另外还有选项可以指定第一次于及尾声一坏载入的数,指定错误的不过充分数额,以及指定插入列的逐一

图片 3

图一

要您的SQL Server数据库在远距离服务器上,就不可知动用SQL Server目标适配器,这个时只能利用OLEDB目标适配器。此外,如果目标数据库可能会见起当地转移也远程,或于一个数据库实例改吗任何一个数据库实例,也最好好应用OLEDB目标适配器,以削弱多少未来恐的改变

多少流引擎通过计算一行数的估算大小来开始调整其缓冲区大小的职责。然后引擎将估计的单行大小和
DefaultBufferMaxRows 值相乘以博取缓冲区大小的始发工作值。

5. 不择手段避免异步转移

以座谈不同门类之变对性的影响前,我们首先简要地回顾一下SSIS的干活原理,SSIS运行时引起擎执行包,当SSIS运行时发动机遇到数据流任务时,它见面以数据流任务交数据流管道引擎,数据流管道引擎会将数据流任务拆分成多独执行树,可能会见又施行两个或多个实施树因增进并发处理能力及特性。你恐怕还免晓得呀是履行树,下面就是答案。

  正使该谓,执行树和栽培的结构类似,每个执行树起同样效缓冲区,其范围及实施树紧密有关,每个执行树也分配产生一个操作系统线程,与缓冲区不同,线程可能同任何执行树是共享的,即一个线程可以执行一个要么多个实施树。在SSIS 2008受,将数据流任务拆分成执行树的过程早已获得了庞然大物的增进,它可以创建一个执路径和子路径,以便你的保得以高端多处理器系统。

  同步转移获得一个笔录,经过处理,然后拿其传于任何转换过程要生一个目标,记录的拍卖不靠让其它传入的尽,因为联合转移输出的记录数和输入的记录数是同一之,它不需要新的缓冲区(处理是于平等之入站缓冲区中落成的),因为纵如此都迅速了。例如,在Derived列转换过程被,在每个入站行增加一排,但非见面多出口的记录数。

  与共转移有点不雷同,异步转移输出的记录数和输入的记录数可能不等同,需要创造新的缓冲区,因为一个出口依赖让平漫长或多漫漫记下,也让喻为阻塞转换。例如,排序转换就是一个举的死转换,它要求具备入站的履以处理之前必须到达才行。

  正使上面所讨论的,异步转移需要分外的缓冲区用于出口,不会见再度使用入站输入缓冲区,在处理之前它吧会见等所有的可站行抵达,这为是异步转移执行得缓的来由,因此若硬着头皮避免这种情景。例如,如果非是生排序转换,你得ORDER BY子词从源表本身得到已排除好序的结果。

如若该结果出乎
DefaultBufferSize 值,引擎将核减行数。

6. DefaultBufferMaxSize和DefaultBufferMaxRows

恰使我当超级实践5面临说话到之,执行树也入站数据排序和实践转换创建一个缓冲区,那么一旦创造多雅的缓冲区合适也?单个缓冲区有微行数据上呢?它对性有哪影响吗?

  缓冲区的高低依赖让来小行数据上缓冲区,有稍许行数据上缓冲区又赖让任何一些素。首先使考虑的凡评估每一行的尺寸,它等于所有符合站行包含的装有列的不过深尺寸,其次要考虑的凡数据流任务的DefaultBufferMaxSize属性,它指定了一个缓冲区的默认最要命尺寸,默认值是10MB,它的上下限是由SSIS的片个里头属性限制的,分别是MaxBufferSize(100MB)和MinBufferSize(64KB),意味着一个缓冲区的深浅范围是64KB到100MB,第三单因素是DefaultBufferMaxRows,它也是数据流任务的一个性质,它指定了进去缓冲区的默认行数,默认值是10000。

  虽然SSIS提供了这般多之习性可以装一个适度的缓冲区大小,如果大小超出了DefaultBufferMaxSize的值,它会减少进入缓冲区的笔录行数。为了加强缓冲区的习性,你可做简单起事情:

1、首先由源中移除不需之排,并为各一样排列设置是的数据类型,特别是公的来源于是一个面文件时,这样可以叫缓冲区尽可能容纳更多的记录行。

2、如果您的体系发出雄厚的内存,你可以通过调整这些性,最后创建少量之大缓冲区,这样见面升级性。注意,如果您用这些性的价值修改到某某分页开始之逼值,会对性能有不利的震慑,因此在装置这些性之前,首先应于您的环境开展完善的测试,最终找到一个恰当的价值。

  你得被BufferSizeTuning事件的日志,这样就可以看到跻身缓冲区的行数,你啊堪监视“Buffers spooled”性能计数器查看SSIS是否上马了分页

如果该结果小于内部计算的极致小缓冲区大小,引擎将大增行数。

7. BufferTempStoragePath和BLOBTempStoragePath

假如内存资源不够,Windows会触发一个内存过没有的通知事件,内存溢出、内存压力、输入记录,除了BLOB,SSIS会将其输出及文件系统,文件系统的职务就是由数据流任务的BufferTempStoragePath属性设置的,默认是拖欠的,在这种情形下,输出位置基于TEMP/TMP系统变量指定的岗位。

一律,SSIS在以BLOB数据作至目标之前,可能会见用其优先勾勒副到文件系统,因为BLOB数据一般十分特别,SSIS缓冲区中储存不生,输出的职是发数据流任务之BLOBTempStoragePath属性设置的,默认是空的,在这种气象下,输出位置为是根据TEMP/TMP系统变量的,如果你无也这些性指定具体的价值,TEMP和TMP系统变量的值将会晤为视作输出的对象,如果你开了数据流任务PipelineInitialization事件之日记,相同的消息会受记录及日志文件中,如:

图片 4
         最要的即是移BufferTempStoragePath和BLOBTempStoragePath的默认值,最好是以它设为不同的磁盘路径,这样可以增长I/O效率,从而升级整体性能

如结果在极度小缓冲区大小与
DefaultBufferSize
值之间,引擎将调整缓冲区大小,以尽力而为接近估计行大小就以
DefaultBufferMaxRows 值得出的结果。

8. 了不起利用DelayValidation属性

SSIS使用说明确定包在运作时是不是会失败,它应用简单种植档次的证明,第一种是包验证,在起来执行包之前,验证包及其包含的享有组件,第二种植是组件验证,一开始即验证包中之具备组件。

  我们借而一个气象,包中的首先独零件创建一个目标,如一个临时表,包中的老二单零件将引用这临时表,在确保之印证过程被,第一独零件还不曾来得及执行,因此临时表也尚从未创建好,在说明第二单零件时最后致使包验证失败。SSIS会抛来一个征异常,并无见面启动包的行,那么您将焉办这种现象被的管教?

  为了化解这种情景有的题目,每个组件都有一个DelayValidation属性,默认值为“flase”,如果您用那如果为“true”,所有证都见面忽视,在承保执行进程遭到,只会在组件级证组件。

=

来源为解笔记(Wiz)SEO=d97d01b0ff4b0d51cf2818d54648a8c3

=

当您开始测试数据流任务之性质时,请用
DefaultBufferSize 和 DefaultBufferMaxRows
的默认值。对数据流任务启用日志记录,并选取 BufferSizeTuning
事件归因于查看每个缓冲区中隐含多少行。

每当始发调整缓冲区大小之前,您可以使用的主要改进方式是经过删除不需的列并配置相应的数据类型来减少各级一个数据行的轻重。

于来足的可用内存时,请以少量底大缓冲区,而未是大量的多少缓冲区。换而言之,可以通过削减存放数据所待的缓冲区总数并以一个缓冲区中放置尽可能多的数额实行来改进性。若使确定缓冲区的特级数目及其大小,请以试
DefaultBufferSize 值和 DefaultBufferMaxRows 值的同时监视性能和由于
BufferSizeTuning 事件报告的信。

不要将缓冲区大小增加及开始针对磁盘进行分页的接触。与非经过优化的缓冲区大小相比,对磁盘进行分页对性的阻作用还怪。若要规定是不是在拓展分页,可监视
Microsoft 管理控制台 (MMC) 的习性管理单元中的“Buffers
spooled”性能计数器。

将包配置为支撑并行执行

并行执行能改进具有多独大体或逻辑处理器的电脑的特性。为了支持以包中并行执行不同的职责,Integration
Services 使用简单只属性:MaxConcurrentExecutables 和
EngineThreads。

MaxConcurrentExcecutables 属性

MaxConcurrentExecutables
属性是保险本身的一个特性。此属性定义可又运行的天职之多少。默认值为
-1,表示物理或逻辑处理器的个数加 2。

假若使询问此属性的做事原理,可参考一个蕴含三单数据流任务之示例包。如果用
MaxConcurrentExecutables 设置也
3,则好又运转有三独数据流任务。但是,假定每个数据流任务都享有 10
单来自及对象实行树。将 MaxConcurrentExecutables 设置也 3
不可知担保每个数据流任务外的实行树都能相互运行。

EngineThreads 属性

EngineThreads
属性是每个数据流任务之习性。此属性定义数据流引擎可以创建和互相运行的线程数。EngineThreads
属性同样适用于数据流引擎为自创建的源线程和该引擎为转移与目标创造的工作线程。因此,将
EngineThreads 设置也 10 表示该引擎可以创建多达 10 独源线程和多达 10
个工作线程。

如果要明了此属性的工作规律,可参照包含三个数据流任务的示例包。每个数据流任务还蕴涵
10 只出自及目标实施树。如果拿每个数据流任务的 EngineThreads 设置也
10,则可以运行有 30 单执行树。

 注意

线程不在本主题的讨论范围之内。但是,通用规则是并行运行的线程数不要多于可用的处理器个数。运行的线程数多于可用的处理器个数可能会降低性能,因为此时需要在线程间频繁进行上下文切换。

图片 5 配置单个数据流组码 


要是使布局单个数据流组桩因优化性能,可以随某些通用指导标准进行操作。同时还留存对各种类型的数据流组件的一定指导原则:源数据流组件、转换数据流组件和目标数据流组件等。

通用指导规范

随便采取何种数据流组件,为了改善性您应该按照下面两只通用指导规范:优化查询及免不必要的字符串。

优化查询

恢宏数额流组件都用于起源中提取数额经常,或当查询操作着创造引用表时使用查询。默认查询利用
SELECT * FROM <表名>
语法。这种类型的询问返回源表中的所有列。在统筹时假如有列可用,这意味着可以挑选任意列作为查找列、传递列或源列。但是,在选取了要运的排列后,您应该改查询而该就囊括那些所挑选的排列。删除多余的排列好假设担保被之数据流更快速,因为列越少则开创的行越小。因为行越小,可以置入一个缓冲区的尽就是愈加多,对数据汇总具有执行开展处理的工作量吗就进一步少。

卿可以键入查询或应用查询生成器来组织查询。

 注意

在 Business Intelligence Development Studio 中运行包时,SSIS 设计器的“进度”选项卡将列出警告信息。其中包括当源向数据流提供了某个数据列但下游数据流组件却没有使用它时出现的警告信息。您可以使用 RunInOptimizedMode 属性来自动删除这些列。

免不必要的排序

排序本身是死慢的操作,因此避免不必要之排序可以增进保险数据流的性能。

一些情况下,源数据以下游组件使用其前面就拓展了排序。当
SELECT 查询利用 ORDER BY
子句或者数额以排序依次插入源中时,即出现这种预排序。对于这种预排序的来源于数据,您可提供一个唤起说明数据现已排序,从而避免以排序转换来满足特定下游转换的排序要求。(例如,合并及联联接转换要求使用曾排序的输入。)若使供一个提醒说明数据现已排序,必须尽下的职责:

将上游数据流组桩输出达到的
IsSorted 属性设置也 True。

然后指定数量排序所根据的排序键列。

有关详细信息,请参考争也统一转换和归并联接转换排序数据。

如果必须在数据流被针对数据排序,则足以用数据流设计啊下尽可能少的排序操作来加强性能。例如,数据流使用多播转换复制数据集。可以在多播转换运行前对数据集进行同样次于排序,而不是当更换后又对多个出口进行排序。

至于详细信息,请参见排序转换、联合转换、联合联接转换和多播转换。


OLE DB 源

利用 OLE DB
源从视图中找寻数据常常,选择“SQL 命令”作为数据访问模式并输入 SELECT
语句。访问数经常,使用 SELECT
语句要比选“表要视图”作为数据看模式之履行效力又不错。

转换

以本节饱受的建议方可改进聚合、模糊查找、模糊分组、查找、合并联接和潜移默化维度转换的性能。

会合转换

聚集转换包括
Keys、KeysScale、CountDistinctKeys 和 CountDistinctScale
属性。通过动用这些性,使转换能够为转移缓存的多少预先分配转换所需要的内存量,从而加强了性。如果掌握如果由“分组依据”操作发生的纯粹或接近组数,则可个别安装
Keys 和 KeysScale
属性。如果知道要于“非重复计数”操作有的非重复值的准确或近似数量,则可个别设置
CountDistinctKeys 和 CountDistinctScale 属性。

要欲以数流中创建多个集,应考虑采取一个聚集转换而休是创造多只转移来创造多独集。如果凑是任何聚合的子集,这种办法会增强性能,因为更换可以优化中存储,并且独自待扫描传入的数目一致糟。例如,如果凑使用
GROUP BY 子句和 AVG
聚合,将它组成成一个易可以提高性。但是,在一个会合转换内实施多独聚合会序列化聚合操作,因此,当得独立计算多单聚众时,这种方法也许不会见改善性。

有关详细信息,请参见聚集转换。

张冠李戴查找和混淆分组转换

有关如何优化模糊查找和歪曲分组转换的属性的信息,请参考白皮书:Fuzzy
Lookup and Fuzzy Grouping in SQL Server Integration Services
2005(SQL Server
Integration Services 2005 中之歪曲查找和混淆分组转换)。

寻找转换

透过输入才寻所用列的
SELECT
语词,最小化内存中引用数的大大小小。这种方法优于选择一切表或视图,因为后者将回大量非必要之数目。

集合联接转换

联合联接转换包括
MaxBuffersPerInput
属性,该属性指定可以又为每个输入处于活动状态的无比可怜缓冲区数。可以使用此属性来优化缓冲区所祭的外存量,并由此优化转换的特性。缓冲区数更是充分,转换所使用的内存越多,性能更加好。MaxBuffersPerInput
的默认值是
5,这是称大多数干活状态的缓冲区数。若使优化性能,可能得尝试运用稍有两样的缓冲区数,例如,4
或 6。如果可能,应当避免使用好小的缓冲区数。例如,将
MaxBuffersPerInput 设置也 1 而不是
5,则可能对性造成十分怪影响。另外,不应允将 MaxBuffersPerInput 设置为 0
或更有些之价值。此值范围表示尚未中断发生,并且鉴于数量负载和可用内存数量,包或无法完成。

如果一旦避免死锁,合并联接转换可能临时增加它所利用的缓冲区数,使该超过
MaxBuffersPerInput 的值。死锁条件消除之后,MaxBuffersPerInput
将回其的配置值。

有关详细信息,请参见集合联接转换。

慢慢变维度转换

日趋变维度向导和潜移默化维度转换是会满足大多数用户要之通用工具。但是,该于导生成的数额流未针对性能进行优化。

普通,渐变维度转换中极缓慢的组件是相同次针对单行执行
UPDATE 的 OLE DB 命令转换。因此,改善渐变维度转换性能最好实惠之方式是替换
OLE DB
命令转换。可以为此目标组件来替换这些易,目标组件将要更新的富有执行保存及一个临时表中。然后,可以长执行
SQL 任务,该任务而针对所有执行执行因单集的 Transact-SQL UPDATE。

高级用户可啊逐步变维度处理规划于定义数据流,此数据流将针对大型维度进行优化。有关这个措施的座谈以及演示,请参见白皮书 Project
REAL: Business Intelligence ETL Design
Practices(Project
REAL:Business Intelligence ETL 设计执行)中的章节 “Unique dimension
scenario”(唯一维度方案)。

目标

比方使精益求精目标的性,请考虑采用
SQL Server 目标并测试对象的习性。

SQL Server 目标

当包将数据加载到平等计算机达之
SQL Server 实例时,请以 SQL Server
目标。此目标指向迅速大容量加载进行优化。

测试对象的习性

汝或许会见发现用数据保存至目标时所消费之时空比预料的要长。为了确定快迟滞是否是由目标处理数据的力不足导致的,可以暂时用目标替换为履行计数转换。如果吞吐量显著增强,很可能是加载数据的靶子导致速度缓慢。

图片 6 监视包的习性 


Integration Services
包括可以用于监视包性能的工具及机能。例如,日志记录得捕获有关保险的运转时信息,性能计数器则足以监视数据流引擎。请动下列建议确定包中对性影响最为特别之片段。

翻开“进度”选项卡及之音

SSIS 设计器提供有关以
Business Intelligence Development Studio
中运作包时控制流和数据流的信。“进度”选项卡按执行各个列出任务和容器,而且还包每个任务与容器与保险自身的起来时与了时间、警告和错误信息。它还比如执行顺序排列有数流组件并连进度信息(显示也完成百分比)和拍卖的行数。

假设一旦允许或取缔以“进度”选项卡及出示信息,请于
SSIS 菜单上切换“调试进度报告”选项。禁用进度报告有助于在 BI Development
Studio 中运行复杂包时改善性能。

布局包中的日志记录

Integration Services
包括各种日志提供次,这些提供程序同意保险在运转时用信息记录到不同类型的文本中还是记录及
SQL Server
中。您可以啊保和顺序包对象(例如任务与容器)启用日志项。Integration
Services
包括各种任务及容器,每个任务以及容器都有其和好的同样组说明性日志项。例如,包括实施
SQL 任务的包得描绘副一个日志项,列有拖欠任务执行之 SQL
语句(包括该语句的参数值)。

这些日记项包括像包以及管对象的上马时间和成功时这么的音讯,从而可以规定运行慢的职责以及容器。有关详细信息,请参考记录包执行的日志、在承保被落实日志记录和日志记录之自定义消息。

配置数据流任务的日志记录

数据流任务提供了森可是用来监视与调动性能的自定义日志项。例如,您可以监视可能会见导致内存泄漏的机件,或者跟特定组件运行所用底工夫。有关这些从定义日志项的列表和日志记录输出示例,请参考数据流任务。

使用 PipelineComponentTime 事件

最为灵之自定义日志项或是
PipelineComponentTime
事件。该日志项报告数量流中的每个组件执行五只根本处理步骤中的每个步骤所用的毫秒数。下表对这些处理步骤进行了说明。Integration
Services
开发人员应将这些手续就是 PipelineComponent 的根本方法。

步骤

说明

Validate

该组件查看有效的属性值和配置设置。

PreExecute

该组件在开始处理数据行之前执行一次性处理。

PostExecute

该组件在处理所有数据行之后执行一次性处理。

ProcessInput

转换或目标组件处理由上游源或转换传递的传入数据行。

PrimeOutput

源或转换组件填充数据缓冲区,以传递给下游转换或目标组件。

启用
PipelineComponentTime 事件频仍,Integration Services
将对准每个组件执行的各国处理步骤记录一致虽然信息。以下日志项显示 Integration
Services CalculatedColumns 包示例记录的音信之子集。

“Calculate
LineItemTotalCost”组件 (3522) 在 ProcessInput 中耗时 356 毫秒。

“Sum Quantity and
LineItemTotalCost”组件 (3619) 在 ProcessInput 中耗时 79 毫秒。

“Calculate Average
Cost”组件 (3662) 在 ProcessInput 中耗时 16 毫秒。

“Sort by ProductID”组件
(3717) 在 ProcessInput 中耗时 125 毫秒。

“Load Data”组件 (3773)
在 ProcessInput 中耗时 0 毫秒。

“Extract Data”组件
(3869) 在“OLE DB Source Output”输出 (3879) 上的 PrimeOutput
填充缓冲区中耗时 688 毫秒。

“Sum Quantity and
LineItemTotalCost”组件 (3619) 在“Aggregate Output 1”输出 (3621) 上的
PrimeOutput 填充缓冲区中耗时 141 毫秒。

“Sort by ProductID”组件
(3717) 在“Sort Output”输出 (3719) 上的 PrimeOutput 填充缓冲区中耗时 16
毫秒。

下列日志项显示数据流任务在下列步骤中吃了大部分日子,如下所示(按降序排序):

名为吧“Extract Data”的
OLE DB 源在加载数据里耗时 688 毫秒。

叫吧“Calculate
LineItemTotalCost”的派生列转换在对染入行执行计算中耗时 356
毫秒。

号称也“Sum Quantity and
LineItemTotalCost”的汇聚转换在实践计算和拿数据传递及下同样转换中共耗时
220 毫秒,其中起 141 毫秒用于 PrimeOutput,有 79 毫秒用于
ProcessInput。

蹲点数据流引擎的性质

Integration Services
包括同样组性能计数器,用于监视数据流引擎的性能。例如,您得跟所有缓冲区使用的内存总量(以字节为单位),并检讨组件是否内存不足。缓冲区凡组件用于存储数据的内存块。有关详细信息,请参考监视数据流引擎的性能。

相关文章