第07章 数据的导入和导出.pptx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第07章 数据的导入和导出

第7章;大多应用程序都设计成允许用户操作单独的数据。但实际应用中经常都需要导入或导出大量数据。 导入大量数据时,使用INSERT语句的执行效率不是特别好。 导出数据时,若向应用程序返回一个结果集,再由应用程序将行写入文件或其他目的地,效率也不高。 SQL Server专门为这些操作提供了新的功能,允许高效地导入和导出大量数据,同时将资源的消耗降至最低。;两年前,我合作过的一个企业有一个完整的分公司专门负责为合作伙伴履行订单。合作伙伴每天都将订单文件上传到FTP服务器。这些文件会被解析并加载到数据库,然后通过一系列出货、打包、发货和结帐过程进行处理。遗憾的是,导入每个合作伙伴的订单往往都要花上2-7个小时。但为了满足和客户的协议,要求所有合作伙伴的文件都必须在1小时内导入完成。一个文件夹中往往会有30或更多的文件等待处理。除此之外,只有5%的合作伙伴才允许批量上传订单,因为系统处理不了任何额外的负载。 用于导入订单的系统由十几C++应用程序构成,30多个文件夹散布在3台服务器上,在导入订单的数据库中,只存在有少量代码。这些程序是十几年前写的,它们90%惟上的工作都是在不同的目录之间移动文件,而目录唯一的作用就是在处理期间隔离文件。通过进一步研究,我们还发现对多个应用程序进行管理的代码试图访问相同的文件。这所以出现这个现象,完全是整个系统的组合方式造成的。 文件终于各就各位并开始真正进行和业务有关的处理时,我们发现应用程序每次从文件中读取一行并处理它。针对处理的每一行,应用程序都执行超过100个查询来校验产品代码、现有库存、价格水平以及其他几个业务规则。 我们重写整个系统来利用SQL Server的批量导入功能。在重写的阶段1,我们删除了所有的C++代码和整个文件夹结构,用单个文件夹来取而代之,用一个存储过程对文件进行BCP,并用另一个存储过程处理文件导入之后的一切事情。在阶段2,我们将BCP例程替换成一个SSIS包,它能并行处理多个文件,而且在处理多种数据格式时更灵活。 完成阶段1后,导入例程的效率已远远地超出合作伙伴上传文件的速度。文件???传之后不到一分钟的时间,所有数据便已导入并处理完成,订单在仓库那里排队等待打包。完成阶段2后,我们将订单上传服务扩展到其他95%的合作伙伴。甚至最大的合作伙伴的订单文件也能在文件上传之后的15秒内处理完毕。系统升级改造的直接结果是有利于扩大客户群。在新系统改造完毕之后的半年之内,公司的业务增长超过400%以上。;1. 导入和导出数据;1. 导入和导出数据;1. 导入和导出数据;1. 导入和导出数据;1. 导入和导出数据;1. 导入和导出数据;1. 导入和导出数据;实训1 使用BCP导入和导出数据;实训2 练习使用向导导入和导出数据;本章回顾;本章回顾;本章回顾

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档