知识大全 用.Net开发DB2应用程序比较

Posted 数据库

篇首语:一卷旌收千骑虏,万全身出百重围。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用.Net开发DB2应用程序比较相关的知识,希望对你有一定的参考价值。

用.Net开发DB2应用程序比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  简介

  在 NET应用软件开发人员看来 使用DB 与使用其它任何其它关系数据库没有区别 人们可以看到无数使用SQL Server以及甲骨文公司产品执行数据库任务的例子 但关于使用包括 NET在内的微软公司技术访问DB 数据库的文档就远没有那么多了

  目前 开发人员可以使用不同的访问技术通过编程的方式将 NET客户端连接到DB 上 这些代码从根本上来说是基本相同的 但仍然存在一些我们需要考虑的有趣的限制

  DB 架构慨览

  DB 数据库引擎的基本元素是数据库对象 系统目录 目录和配置文件 所有的数据存取都通过SQL界面进行 我们可以只将DB Univeral Database(UDB)作为数据库服务器运行 这不要求使用其它的产品 但对于远程的客户端而言 我们还需要其它一些产品

  DB UDB的服务器组件提供了对使用TCP/IP SNA或IPX/SPX协议与数据库服务器进行通讯的支持 这就能够使运行管理客户端 运行时间库或应用程序开发客户端的远程客户端进行访问 应用程序开发客户端组件是面向数据库应用程序开发人员的工具集 它包括库文件 头文件 API和样板代码

  我们主要关心的是能够通过网络访问数据库服务器的客户端组件 通过使用DB Connect 我们的 NET应用程序能够访问基于主机的DB 系统 例如DB for AS/ DB for OS/ DB for VSE等

  连接到DB 的方式决定了我们能够完成的任务 有三种技术可以从 NET连接到DB

   使用OleDb NET Managed Provider 如果运行的是DB V 或更低的版本以及对象是调用者时 微软和IBM二家公司都建议使用OleDb数据提供者访问大多数DB 数据 在 NET Framework中 OleDb提供商是通过 InterOp表现出来的 并使用可用于ADO开发的驱动程序

   使用ODBC NET Managed Provider 这种方式提供了对本地ODBC驱动程序的访问 与OLEDb NET Data Provider提供对本地OLEDb提供者访问的方式相同 ODBC NET Data Provider是 NET Framework的一个附加组件 它能够与所有兼容的ODBC驱动程序配合使用

   使用IBM DB NET Provider(β) 这种方式提供了对将ADO NET连接到DB V 的支持 DB NET Data Provider是Visual Studio NET Framework的一个内插式附件 它能够访问在运行在不同硬件和操作系统平台上的DB·数据库服务器 目前 它仍然处于β测试阶段 但IBM公司很快会发布正式产品 DB Net Data Provider能够将使用ADO NET开发的应用程序连接到下面的DB 数据库服务器上

  ·运行在Windows UNIX和Linux平台上的DB Universal Database Version

  ·运行在z/OS OS/ V 以及使用DB Connect V 组件的更高版本的操作系统上的DB Universal Database

  不同的连接字符串显示出不同情况下的语法差别

  OleDb连接字符串

  Provider=IBMDADB ;User ID=db admin;Password=db admin;Data Source=SAMPLE

  ODBC连接字符串

  DSN=DB V ;UID=db admin;PWD=db admin

  IBM Managed Provider连接字符串

  Database=SAMPLE;User ID=db admin;Password=db admin;Server=IREK

  代码级访问的比较

  在开发DB 数据访问代码时 大多数的操作在很大程度上与访问其它数据库相同 下面我们对连接技术的一些代码进行比较

  在下面的每个代码片断中 我们将展示一些数据库访问和数据管理的技巧 请读者注意每种技术的哪些步骤相同 我们首先创建连接对象 再创建一个命令对象 在这个简单的例子中 我们只访问这一特定数据库表中指定行 列中的一个标量值 最后 我们执行该命令的ExecuteScalar()方法 返回该整数

  使用Ole Db技术

  private OleDbConnection cn = new OleDbConnection(connectionString); OleDbCommand cmd = new OleDbCommand( SELECT COUNT(*) FROM STAFF cn); int rc = Convert ToInt (cmd ExecuteScalar());

  使用ODBC

  private OdbcConnection cn = new OdbcConnection(connectionString);OdbcCommand cmd = new OdbcCommand( SELECT COUNT(*) FROM STAFF cn);int rc = Convert ToInt (cmd ExecuteScalar());

  使用IBM的Managed Provider

  private DB Connection cn = new DB Connection(connectionString);DB Command cmd = new DB Command( SELECT COUNT(*) FROM STAFF cn);int rc = Convert ToInt (cmd ExecuteScalar());

  功能的比较

  根据选择的访问技术和使用的数据库版本 我们可以使用不同的功能 另外 根据需要完成的工作 我们还需要选择连接策略

  为了使读者能够更好的选择连接技术 我整理出了一个能够在决策中使用的路线图 在路线图中 我找出了一些对于大多数以数据库为中心的软件开发项目中通用的功能

  在下面的图表中 我对自己的心得进行了整理 我根据是否允许完成特定的数据库任务对三种访问技术中的每一种都进行了评估 评估的数据库任务有

  ·Pass thru SQL━━这一提供者是否支持通过动态开发的SQL语句形成的传递?

  ·简单的存储过程━━这一提供者支持包括返回结果在内的调用基本的存储过程吗?

  ·In Out InOut参数━━这一提供者支持调用存储过程和利用参数传递变量数据吗?

  ·日期和货币━━这一提供者支持由特定厂商提供 可能造成问题的数据类型吗?

  ·LOBs━━这一提供者支持大对象数据类型的处理吗?

  根据使用的连接技术 我们能够完成不同类型的任务 因为每种提供者都有自己可以完成的工作 有一些问题是我们值得注意的

  例如 ODBC不支持DB 的存储过程 因此 如果开发的应用软件非常依赖于存储过程 我们在选择访问技术时就不能考虑ODBC 而应当考虑OleDb或Managed Provider OleDb不支持LOB数据类型 如果要存取LOB类型的数据(例如JPEG文件) 我们可以使用ODBC或Managed Provider 目前 Managed Provider不能在DB V 或以前版本上运行 除非在应用程序和基于主机的DB 系统之间运行着DB Connect V

  有趣的是 在使用存储过程的参数时 DB V 和OleDb有一个非常著名的bug 我们能够从存储过程中返回数据 但在OleDb+DB V 平台上 我们不能在应用程序与存储过程之间传递参数

  性能比较

  为了衡量提供者的性能和向读者提供指导 我们将定义一个有效的测试脚本 并对各种提供者的关健性能进行测试 为了比较各种连接技术的性能 我们开发了一些简单的Web网页 一个网页面向执行完全相同功能的测试 这将使我们掌握分析不同连接技术情况下输出的控制数据

  如果严格地从性能的角度来看 我们发现 Managed Provider在访问DB 数据库时的性能最高 在这一简单的测试中 有二个重要的数字值得关注 每秒钟的请求(RPS)能够使我们感受到访问的规模 OleDb和ODBC在这方面的表现基本相似 但Managed Provider的表现要好一些(大约高 %左右) 收到最后一字节的时间(TTLB)是从终端用户的角度看到的响应时间 在这一方面 Managed Provider的性能再次比OleDb和ODBC高出 %左右

  最值得注意的是 尽管提供的功能不同 但OleDb和ODBC在有负荷的情况下的性能基本相同 IBM公司的Managed Provider的性能最好 而且提供了在访问DB V 时最可靠的功能 但是 如果没有DB Connect作中间体 它不支持DB V 以及更低的版本

  结论

cha138/Article/program/net/201311/13751

相关参考

知识大全 用.net和协议快速开发下载软件

  在互连网广泛应用的今天将有用的信息下载到本地是一件很普遍的事当然这个过程我们可以通过许多下载工具实现目前的这些下载工具绝大多数都是使用协议完成的虽然使用编写下载工具是一种很简单的方法但美中不足的是

知识大全 开发中如何有效监控.NET应用程序

开发中如何有效监控.NET应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  当你的NET应

知识大全 开发安全的ASP.NET应用程序

开发安全的ASP.NET应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Web应用程序会

知识大全 .NET下开发Windows 服务应用程序

.NET下开发Windows服务应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Wind

知识大全 VS2005.NET进行三层结构应用程序的开发

VS2005.NET进行三层结构应用程序的开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一三层

知识大全 Web应用程序ASP.NET开发电子商务网站购物车

Web应用程序ASP.NET开发电子商务网站购物车  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 详解.NET 2.0开发Winform程序经验

详解.NET2.0开发Winform程序经验  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  带有

知识大全 .NET Remoting程序开发入门篇

.NETRemoting程序开发入门篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一Remoti

知识大全 基于ASP.NET MVC框架开发Web论坛应用程序[1]

基于ASP.NETMVC框架开发Web论坛应用程序[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 基于ASP.NET MVC框架开发Web论坛应用程序[3]

基于ASP.NETMVC框架开发Web论坛应用程序[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下