• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试开发技术SQL Server2005的高性能策略

发布: 2009-10-10 09:41 | 作者: 不详 | 来源: 领测软件测试网 | 查看: 20次 | 进入软件测试论坛讨论

领测软件测试网

    你可能会经常选择不同的应用程序去解决数据整合问题。关键是要确定哪些应用可以在给你带来足够功能的同时,成本较低。

    例如,你面临着使用SQL Server Transact-SQL的BULK INSERT语句或BCP工具来往SQL Server中读取文本文件的工作,与SSIS相比,这样可以在成本较低的情况下满足数据读取功能的需求。当你有较小的数据集和简单的数据整合需求时,上述情况很可能发生,这时启动SSIS操作的开销就能抵消使用BCP或BULK INSERT所获得的性能收益。

    帮助你做出正确的选择,我们把每一应用的主要功能组件列出来,以便你能够根据主要的需求做出相应的评价。例如,以下的使用指导可以帮助你在BULK INSERT/BCP或SSIS中做出选择。

◆BULK INSERT / BCP使用指导 – 当你的应用场景有以下的特征时,应该使用BULK INSERT / BCP:

◆有单一的数据源,并且是文件形式

◆有单一的目标,并且是SQL Server

◆没有数据转换的需求,比如直接从源读取到目标

◆没有工作流程管理,注意流程管理并不适合BULK INSERT,因为它只是一个将数据读取进SQL Server的单独操作

◆SSIS使用指导 - 当你的应用场景有以下的特征时,应该使用SSIS:

◆多个不同种类的数据源和目标

◆有数据转换需求:聚集,查询,创建新列

◆与其他的管理任务(如邮件或FTP)相结合

◆通过工作流程管理控制多个任务和转换的顺序

评估选择

    根据使用指导,你可以更好的评估哪种应用选择更符合你的数据需求。

    在文件读取的例子中,你的需求不仅仅是往SQL Server中读入5000000条记录,还包括对这些记录的数据聚集。考虑到这些需求,确认以下哪个方法可以完成这项任务。注意,这里仅仅列出两个可行的方法。

◆方案1 - BULK INSERT解决方案 – 你当然可以使用BULK INSERT去从源文件读取数据,并装载到SQL Server中。但是,你还需要增加额外的操作,在把数据装载到目标表前对其进行聚集。一种方法是使用BULK INSERT把数据放入一个暂时的表,然后使用Transact-SQL对暂时表中的数据进行聚集,再用Transact-SQL把数据读入目标表中。

◆方案2 – SSIS解决方案– SSIS提供了一站式的解决方案,你可以在聚集数据的同时将其装载到目标表中。并且,在SSIS中你还能添加工作流程来控制这些操作的顺序,甚至对执行过程进行日志,记录操作执行的过程,以及进行出错处理,找出不符合要求的记录。

    当你对比上述两个方案时,SSIS解决方案可以不使用暂时表,并且把所有的数据读取逻辑和工作流程装入单一的SSIS包中。而对于方案1,你不仅需要使用Transact-SQL来对数据进行聚集,还需要把数据逻辑封装在一个存储过程中。所以,根据这一对比,SSIS解决方案是这一读取-聚集案例最优的选择,也就是可以提供足够的功能,并且有能力集中管理工作流程。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

64/6<123456>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网