特性概述/technology/tech/windows/odpnet/featoview.gif

Oracle Data Provider for .NET

       2002 年 9 月

简介
Microsoft .NET 框架的推出已经创造出一种不同于 COM 的新的 Windows 应用服务器环境。使用 COM 时,可以通过 Oracle Objects for OLE (OO4O)、ADO/OLE DB 或 ODBC 访问 Oracle 数据库中的数据。在 .NET 环境中,用户仍然可以通过 OLE DB 和 ODBC 使用由 Microsoft 提供的数据访问桥接来访问 Oracle 数据库。对于 OLE DB,这种桥接是 OLE DB .NET;对于 ODBC,则是 ODBC .NET。这些桥接提供了被管理的 .NET 层和未被管理的 COM 或 Win32 层之间的交互。Oracle Data Provider for .NET (ODP.NET) 代表访问 Oracle 数据库的第三种方法。

与其他 .NET 数据提供程序的区别

在三种数据访问方法中,ODP.NET 最接近 .NET 环境,绕过了对 OLE DB 或 ODBC 的需求。它的特点是对 Oracle 数据库的高性能访问,同时提供对那些通过 OLE DB .NET 和 ODBC .NET 不能使用的高级 Oracle 功能的访问。与 OLE DB .NET 和 ODBC .NET 相似,ODP.NET 可以通过任何 .NET 语言来使用,如 C# 和 Visual Basic .NET。一个重要的区别是,ODP.NET 无需其他数据访问桥接,因而其性能优于 OLE DB .NET 和 ODBC .NET。此外,由于这些 .NET 桥接旨在用于一般的数据源,因此它们不提供对高级数据库功能的完全访问。这三种 .NET 数据提供程序如图 1 所示。  

图 1:Oracle .NET 数据访问

图 1:Oracle .NET 数据访问

主要特性
ODP.NET 使得从 .NET 使用 Oracle 数据库比其他 .NET 提供程序更加灵活、快速和稳定。它是 Oracle9i Release 2 客户端程序的一部分,但是可以与任何 Oracle8、Oracle8i 或 Oracle9i 数据库服务器一起使用。此处集中介绍了 ODP.NET 的一些主要特性。

XML 特性
随着 XML 成为一种数据集成和 web 服务的流行语言,许多 .NET 程序员正在将其用在他们的应用程序中。ODP.NET 为程序员提供两种使用 XML 的方法:XML DB 和 System.XML 服务。

XML DB 是 Oracle 高性能的原生 XML 存储和检索技术,与 Oracle9i Release 2 数据库服务器一起提供。它提供一种独特的能力,可在标准的 W3C XML 数据模型中存储和管理结构化和非结构化的数据。 XML DB 提供 XML 和 SQL 术语之间的完全透明性和可交换性。ODP.NET 将 .NET 客户端程序完全暴露所有 XML DB 功能。.NET 客户端程序从 ODP.NET 执行 PL/SQL 调用来调用 XML DB 功能。点击此处获得有关 XML DB 的更多信息。

Microsoft System.XML 服务是一组通过 .NET 数据提供程序来处理 XML 数据集的接口。ODP.NET 与 System.XML API 交互操作,通过 ODP.NET DataAdapter 接口为其提供数据。使用 XML DB 和 System.XML 的一个主要的不同之处是,前者在数据库服务器上提供包含数据的 XML 服务。 而后者在客户端操纵 XML。因此,ODP.NET 为程序员提供了极大的灵活性,用以选择最适合于他们项目需求的 XML 技术。

性能
ODP.NET 与 OLE DB .NET 和 ODBC .NET 的一个主要的不同之处在于其更好的性能。根据以前的描述,ODP.NET 接近于 .NET 环境,因此它并不使用数据访问桥接,而其他两种数据访问方法需要这种桥接。数据访问桥接是数据经过的一个附加的间接层。这不仅意味着性能降低,还可能给数据访问层带来不稳定性。额外的层造成了更多潜在的不稳定性,因为这就增加了出现故障的可能性。 此外,ODP.NET 对检索和操纵 Oracle 本地类型进行了很多优化,如 LOB 和 REF Cursor,而 OLE DB .NET 和 ODBC .NET 很少进行优化。

通过使用 ODP.NET 提供的许多调整特性,可以进一步改善 .NET 的数据访问性能。根据最适合于应用程序的使用配置文件的情况,确定这些调整特性的设置。调整特性包括:

  • 连接池 — 为应用程序建立连接池,允许设定连接生存时间、最小和最大池的尺寸
  • 预取行 — 指定每次服务器往返时将要取出的行数
  • 数据块大小(LONG,LONG RAW) — 指定要取出的非标量数据的大小

原生 Oracle 类型
在 .NET 中,Microsoft 已经在不同的 .NET 编程语言中推出了一组统一的数据类型。使用 ODP.NET 时,Oracle 用户可以访问 .NET 数据类型以及 Oracle 原生类型。在 .NET 应用程序中可以充分操纵 Oracle 类型,并与 .NET 数据类型进行交互。Oracle 原生类型提供了高级功能,以存储和检索数据库的专用数据结构,如 XML 或 Microsoft Word 文档。甚至在使用通用类型(如 OraDecimal,等同于 .NET 的十进制数字类型)时,Oracle 类型也提供更好的功能。 在 OraDecimal 的示例中,它提供 38 位精确度,高于 .NET 十进制数提供的 28 位精确度。

ODP.NET 支持全部高级 Oracle 类型,包括 REF Cursor、LOB (CLOB、BLOB、NCLOB)、BFILE、Long、RAW、LONG RAW 和 N-data 类型。使用 OLE DB .NET 或 ODBC .NET 的一个限制是,用户无法充分操纵 Oracle 类型。例如,在 ODP.NET 中,可以任意访问那些作为 PL/SQL 输出参数而获得的多个 REF Cursor 对象。而使用其他两种数据访问方法时,必须以线性方法访问 REF Cursor。

其他主要特性
ODP.NET 提供了许多其他 Oracle 数据库特性,包括 PL/SQL、事务处理和 Unicode 支持。ODP.NET 用户可以完全执行数据库中的 PL/SQL 存储过程和函数。 PL/SQL 可以被封装或不封装。程序员拥有了使用 PL/SQL 的重要灵活性,包括从一个存储过程返回多个结果集的能力。

ODP.NET 可以作为资源管理器参与到使用 Oracle 数据库的事务处理应用程序中。在 .NET 环境中,ODP.NET 使用 Microsoft Enterprise Services 作为事务处理协调器。Oracle Services for Microsoft Transaction Server (OraMTS) 作为 ODP.NET、Enterprise Services 和 Oracle 数据库之间的代理程序,以便协调这些事务。OraMTS 为 ODP.NET 程序员提供了强健的体系结构,使其事务处理应用程序保持高可用性并以可伸缩的方式执行。

ODP.NET 完全支持 Unicode,因此 .NET 用户可以用多种书面语言方便地对应用程序进行全球化。这样能够更快捷地在多语言环境中部署应用程序。

结论
ODP.NET 为程序员的 .NET 应用程序提供了更好的性能、灵活性以及特性的选择。利用 ODP.NET,开发人员能够使用 .NET,但不必损失 Oracle 强大的数据管理能力。有关更多信息,请访问 ODP.NET 网页。


 

 

Oracle Corporation
全球总部
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.

全球咨询热线:
电话 +1.650.506.7000
传真 +1.650.506.7200
http://www.oracle.com/

版权所有 © Oracle Corporation 2003
保留所有权利

本文档只用于信息目的,并且这里的信息可能不经通知而进行更改。请向 Oracle Corporation 报告这里的任何错误。Oracle Corporation 不提供任何保证,特别是拒绝承担与本文档有关的任何责任。

Oracle 是注册商标,而 Oracle9i 和 PL/SQL 是 Oracle Corporation 的商标或注册商标。其他所有提及的公司和产品名称只用于识别目的,可能是各自所有者的商标。

寄送此页面
Printer View 打印机视图