Elizabeth Vitt在商业智能领域拥有超过十年的商业系统开发,项目管理,咨询和培训经验。她在数据仓库,ETL和OLAP设计和实施方面还有着丰富的教学经验。
目录
简介
性能建模
操作
定义操作
优化操作
容量
定义容量
优化容量
应用
理解应用的使用
评估选择
区域
定义区域选择
评估区域影响
总结
关于作者
Elizabeth Vitt, Intellimentum
Hitachi Consulting
简介
性能是数据集成解决方案里关乎成败的重要因素。性能不仅决定了是否能够有效的满足当前的数据集成需求,而且影响了解决方案的可扩展性,以及对未来商业需求变化的适应能力。例如,性能问题可以增加数据容量,减少批处理窗口,扩展数据复杂性,形成数据的质量标准。
尽管性能问题在每个项目中都扮演着至关重要的角色,讽刺的是,人们最容易忽视它,往往把它放在开发周期的最后环节才加以考虑。而到了这个时候,设计都已经基本定型了,交付日期也日益临近,客户越来越期盼获得一个良好的产品,你已经没有机会再去进行大的设计调整了。
对一个现有的设计进行性能优化当然也很有意义,但是你会发现,一旦设计细节确定了,你可以进行优化的余地也就被限制了。尽管这些事后的优化工作是不可避免的,但你仍然可以通过在设计过程中就加入整体的性能策略,来尽量减少最后再进行性能优化的麻烦。这些性能策略可以帮助你在整个开发周期内做出更优的设计决策,在可管理的时间和计划内提交出性能更好的解决方案,从而节省了项目的宝贵时间。
Microsoft® SQL Server™ 2005 Integration Services (SSIS),是一个全功能的数据整合引擎和开发环境,用来创建高性能的数据解决方案。它提供了一个用于数据整合的性能策略,可以通过调整四项性能元素——操作、容量、应用和区域,帮助你设计更好的SSIS解决方案。
性能建模
影响特定数据整合解决方案的因素有很多,一个成功的性能策略需要能够照顾到各种可能的情况,同时也要能够提供可以具体执行的详细信息。这一点恰恰是SSIS性能策略的目标:提供了可以帮助访问数据负载的指导,确定影响数据整合性能的主要因素,最大化各种性能优化技术的效果。以下是性能策略中关键的四个性能元素:
◆操作 – 确认潜在的优化可能性。首先,把你的整合解决方案分解成特定任务或者工作单元,然后对每个任务中所有的数据操作进行完全的定义。这些操作中的一部分很好确认,而另一些有关最佳性能优化机会的操作就不是很容易确认了。
◆容量 – 完全定义了这些操作后,接着确认流程中每一步进程预期的数据容量,明确这些容量是如何影响数据操作性能的。这也是确认数据容量如何随时间进行预期变化的好机会。
◆应用 – 对操作和容量进行规格说明,选择最适合的SQL Server应用或技术。永远会有很多的方法可以完成特定的任务;关键是确认哪一个应用可以花费最小的代价,而为你提供足够的功能。
◆区域 – 最后一个因素就是区域,指的是数据整合操作的运行时环境。Location排在最后是因为其它性能影响因素的参数会影响到你对运行时环境的最佳设置。
一个简单的记忆方法,OVAL,可以帮助你记住这四个影响性能策略的组件。
下面的章节展示了这些方法所带来的好处,你可以使用这些组件来优化一个简单的数据集成方案。在这一情景下,你在使用SQL Server Integration Services来聚集一个5000000条记录的普通文本文件,并且把结果记录读入到目标的SQL Server RDBMS表中。
操作
操作是性能策略中关键的因素。特别强调的是需要理解所有的数据操作,这些操作是解决方案的一部分,你可以确认优化和调整的机会。这意味着超出了手边显而易见的任务,需要从数据源到每一个数据集成操作,确认整个操作流程的顺序,直到目标为止。
定义操作
示范操作如何工作,查阅表1中所列的各种操作。这一表格描述了当使用SSIS去读取并往SQL Server 目的表中聚集普通文本文件数据时,所包含的每一步操作步骤。
表1:操作读取了一个普通文本文件,将其聚合成了SQL Server数据表
|
操作步骤 |
性能考虑 |
|
1. 从文本文件中读取数据 |
在这一步中,SSIS建立了一个对源文件的连接并读取数据。记录读取的速度很大程度上依赖于SSIS的外部因素,如磁盘速度,I/O资源争夺,网络速度,以及计算机资源。 尽管这些因素对于SSIS应用来讲是外部的,还是需要了解他们是如何影响整体性能的。如果在这步中出现了性能瓶颈,你就需要考虑另外的方法了。例如,减少I/O资源争夺,将源文件分开,然后使用顺序读操作。 |
|
2. 将文本文件中的数据加载到SSIS 数据管道中 |
在这一步中,SSIS解析源文件,并读入名叫缓存的SSIS内存构造中。在设计时,通过收集象数据类型,排序,解析路由等元数据,SSIS建立了解析文件的规则。在运行时,文件根据这些规则被读取和解析。这些规则越精确,这一过程就越有效率。 |
|
3. 聚合数据 |
在这一步中,SSIS把已经读入SSIS数据管道中的数据进行了聚集。为了执行这一聚集,SSIS创建了一个缓存,你可以将此缓存设置成帮助提高性能,并且使SSIS利用的内存资源最大化。 |
|
4. 在SQL Server打开一个事务 |
在数据聚集完成后,一系列后续步骤使SSIS把聚集的数据读入到目标的SQL Server数据库表中。 从这点看,所有在SQL Server 中建立的帮助优化批量读取的最佳实践都会生效,例如设置数据库恢复模型,启动快速读取,使用表锁定,并且配置提交大小。 |
|
5. 将数据传递到SQL Server界面 |
|
|
6. 将数据读入每个SQL Server目的表 |
|
|
7. 提交事务
|
