从VSAM转换成DB2之前要考虑的问题

日期: 2008-12-03 作者:Craig S. Mullins翻译:April 来源:TechTarget中国 英文

问:我如何才能从VSAM转移到DB2?有没有免费的工具或者我们能通过映射进行转移吗?   答:首先,我们简单了解一下VSAM和DB2之间的区别。VSAM是一种文件访问方法。VSAM是Virtual Storage Access Method的缩写形式。VSAM提供比平面文件更快的访问,因为它用的是一个反向的索引(B+tree)。

这个索引是用于访问数据、寻找正确数据,比只读数据要快得多。要详细了解DB2和VSAM方面的区别,你可以阅读我在这这一方面的文章。   为什么我们要从 VSAM转换成DB2?如果你的应用软件今天还运行得很好、没有任何其它数据存取或者VSAM 数据操作需求,那么你就不需要将……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

问:我如何才能从VSAM转移到DB2?有没有免费的工具或者我们能通过映射进行转移吗?

  答:首先,我们简单了解一下VSAM和DB2之间的区别。VSAM是一种文件访问方法。VSAM是Virtual Storage Access Method的缩写形式。VSAM提供比平面文件更快的访问,因为它用的是一个反向的索引(B+tree)。这个索引是用于访问数据、寻找正确数据,比只读数据要快得多。要详细了解DB2和VSAM方面的区别,你可以阅读我在这这一方面的文章。

  为什么我们要从 VSAM转换成DB2?如果你的应用软件今天还运行得很好、没有任何其它数据存取或者VSAM 数据操作需求,那么你就不需要将VSAM转换成为DB2。人们转换为DB2的主要理由就是简化数据存取。

  给DB2写特别的SQL比编程存取VSAM 文件要简单得多。如果你报告或操作需求经常变化的话,那么通过不编写VSAM 程序节省的时间可以用于验证数据转换成DB2。但是你不应该只进行简单的转换。我的意思就是说,我们需要对数据进行详细分析,并且需要创建一个逻辑模块。VSAM文件很多情况下都没有规格化、也不想将自身转换成为DB2(或者其它关系型的DBMS。如果你简单地将VSAM文件(记录)转换成为DB2表(行),由于DB2和VASM的用途不相同,所以它的性能也会受到影响。

  换句话说,如果应用程序没有从VSAM转换成DB2 这方面知识的话,这个程序就不合适。为什么呢?因为DB2用的是SQL存取数据set-at-a-time。另一方面,存取数据record-at-a-time,所以在已经写好的应用程序和新的数据存储机制——DB2之间就存在着失调。如果你仅仅将VSAM调用语句转换成DB2 SQL语句,那么你可能就没有充分利用SQL、你就没有链接数据、你就没有合适地叙述谓词,因为VSAM 只通过一些键来存取数据。你可以你的程序不需要的程序。这样做的结果就是应用软件的性能减弱,没有人想得到这样的结果,不是吗?

  的确,VSAM专家在转换到DB2时所面临的最大的问题就是将DB2数据当作平面文件数据一样对待。我们需要这种心理上的转变,即考虑集合而不是文件、行而不是记录,并尽可能在SQL谓词中放入更多的工作,这样能让DB2尽可能运转更流畅。

  相反,有时VSAM支持者把DB2称为一只贪婪的猪。是的,在用DB2代替VSAM时还会有另外的工作。DB2做的事情要比要比VSAM多。所以有必要额外花费。这是不是说VSAM 要比DB2好呢?很显然不是!如果你了解DB2并且合理使用它,那么它的性能就会很好。如果你把DB2当作VSAM来使用,那它的性能就会大打折扣。认真考虑一下:比较集群索引四个列的DB2 SELECT,通过读取整个VSAM 文件存取相同数据时需要应用程序代码。在这种情况下,适当编码的DB2无疑将超出正常编码VSAM的要求。

  另外很重要的一点就是灵活性。DB2比较灵活而VSAM却不一样。如果你不相信,那你就想想它会对现有数据增加一个索引。你可以在程序后面增加索引,DB2会在不改变任何应用程序编码的情况下充分利用这个索引。你还必须用VSAM弄清楚编码需求并且使用新索引,不是十分灵活,是吗?

  第三个你要考虑的因素就是环境问题。对相同的VSAM文件在数据库中或是在线进行并行更新(concurrent updates)与对DB2进行同样的操作的效果并不相同。DBMS locking和ACID properties很显然让这种环境对DB2很有利。

  希望对这些问题的总结能够帮助你进行决策。如果你还想了解VSAM其它方面的信息,请你阅读IBM红皮书:VSAM Demystified (SG24-6105)。如果你负有将VSAM应用程序转换成DB2的任务,你也许还想研究一下IBM的 VSAM Transparency产品。祝你在这项工作中顺利!

作者

Craig S. Mullins
Craig S. Mullins

数据管理策略研究人员,拥有超过30年的数据库系统经验

翻译

April
April

相关推荐

  • BMC公司z/OS DB2数据库性能工具 不只是便捷

    BMC公司z/OS DB2数据库性能工具可以用来监控和管理多套DB2系统的关键性能特征,只需要在一套平台上就可以完成监控工作。

  • 数据库产品巡礼:IBM DB2概览

    IBM DB2关系型数据库管理系统提供了支持多平台系统的关键技术,它具备较高的可用性和良好的性能。

  • 如何进行分布式大数据应用调优

    分布式环境通常是与数据库服务器相分离的。而DBA的工作就是监视这些环境并配置和优化数据库服务器以满足多种需求。大数据的出现加剧了DBA的问题。

  • IBM DB2将迎来30岁“生日”

    再过几天,主流数据库产品DB2就将迎来它30岁的“生日”。作为关系型数据库技术的标志性产品,DB2在过去的30年中也在伴随用户需求的变化不断地发展。