成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用.Net開發(fā)DB2的技術比較

數(shù)據庫
目前,開發(fā)人員可以使用不同的訪問技術通過編程的方式將.NET客戶端連接到DB2上,這些代碼從根本上來說是基本相同的,但仍然存在一些我們需要考慮的有趣的限制。本文將為您介紹.NET開發(fā)時,應用DB2的一些技術比較,供您參考。

DB2和SQL Server等其他一些大型數(shù)據庫系統(tǒng)占據著主要的數(shù)據庫市場,隨著IBM的深入推廣,DB2將有著更為廣闊額發(fā)展前景,本文將為您介紹.NET開發(fā)時,應用DB2的一些技術比較,供您參考。

在.NET應用軟件開發(fā)人員看來,使用DB2與使用其它任何其它關系數(shù)據庫沒有區(qū)別。人們可以看到無數(shù)使用SQL Server以及甲骨文公司產品執(zhí)行數(shù)據庫任務的例子,但關于使用包括.NET在內的微軟公司技術訪問DB2數(shù)據庫的文檔就遠沒有那么多了。

目前,開發(fā)人員可以使用不同的訪問技術通過編程的方式將.NET客戶端連接到DB2上,這些代碼從根本上來說是基本相同的,但仍然存在一些我們需要考慮的有趣的限制。

DB2架構慨覽

DB2數(shù)據庫引擎的基本元素是數(shù)據庫對象、系統(tǒng)目錄、目錄和配置文件,所有的數(shù)據存取都通過SQL界面進行。我們可以只將DB2 Univeral Database(UDB)作為數(shù)據庫服務器運行,這不要求使用其它的產品,但對于遠程的客戶端而言,我們還需要其它一些產品。

DB2 UDB的服務器組件提供了對使用TCP/IP、SNA或IPX/SPX協(xié)議與數(shù)據庫服務器進行通訊的支持,這就能夠使運行管理客戶端、運行時間庫或應用程序開發(fā)客戶端的遠程客戶端進行訪問。應用程序開發(fā)客戶端組件是面向數(shù)據庫應用程序開發(fā)人員的工具集,它包括庫文件、頭文件、API和樣板代碼。

我們主要關心的是能夠通過網絡訪問數(shù)據庫服務器的客戶端組件。通過使用DB2 Connect,我們的.NET應用程序能夠訪問基于主機的DB2系統(tǒng),例如DB2 for AS/400、DB2 for OS/390、DB2 for VSE等。

連接到DB2的方式決定了我們能夠完成的任務。有三種技術可以從.NET連接到DB2:

1、使用OleDb .NET Managed Provider。如果運行的是DB2 V7或更低的版本以及COM對象是調用者時,微軟和IBM二家公司都建議使用OleDb數(shù)據提供者訪問大多數(shù)DB2數(shù)據。在.NET Framework中,OleDb提供商是通過COM InterOp表現(xiàn)出來的,并使用可用于ADO開發(fā)的驅動程序。

2、使用ODBC .NET Managed Provider。這種方式提供了對本地ODBC驅動程序的訪問,與OLEDb .NET Data Provider提供對本地OLEDb提供者訪問的方式相同。ODBC .NET Data Provider是.NET Framework的一個附加組件,它能夠與所有兼容的ODBC驅動程序配合使用。

3、使用IBM DB2 .NET Provider(β):這種方式提供了對將ADO.NET連接到DB2 V8.1的支持。DB2 .NET Data Provider是Visual Studio .NET Framework的一個內插式附件,它能夠訪問在運行在不同硬件和操作系統(tǒng)平臺上的DB·數(shù)據庫服務器。目前,它仍然處于β測試階段,但IBM公司很快會發(fā)布正式產品。DB2 .Net Data Provider能夠將使用ADO.NET開發(fā)的應用程序連接到下面的DB2數(shù)據庫服務器上:#p#

·運行在Windows、UNIX和Linux平臺上的DB2 Universal Database Version 8.1。

·運行在z/OS、OS/390 V6.1以及使用DB2 Connect V8.1組件的更高版本的操作系統(tǒng)上的DB2 Universal Database。

不同的連接字符串顯示出不同情況下的語法差別:

OleDb連接字符串 ...

Provider=IBMDADB2.1;User ID=db2admin;Password=db2admin;Data Source=SAMPLE

ODBC連接字符串 ...

DSN=DB2V8;UID=db2admin;PWD=db2admin

IBM Managed Provider連接字符串 ...

Database=SAMPLE;User ID=db2admin;Password=db2admin;Server=IREK

代碼級訪問的比較

在開發(fā)DB2數(shù)據訪問代碼時,大多數(shù)的操作在很大程度上與訪問其它數(shù)據庫相同。下面我們對連接技術的一些代碼進行比較:

在下面的每個代碼片斷中,我們將展示一些數(shù)據庫訪問和數(shù)據管理的技巧,請讀者注意每種技術的哪些步驟相同。我們首先創(chuàng)建連接對象,再創(chuàng)建一個命令對象。在這個簡單的例子中,我們只訪問這一特定數(shù)據庫表中指定行、列中的一個標量值。***,我們執(zhí)行該命令的ExecuteScalar()方法,返回該整數(shù)。

使用Ole Db技術...

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

使用ODBC...

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

使用IBM的Managed Provider...#p#

private DB2Connection cn = new DB2Connection(connectionString);
DB2Command cmd = new DB2Command("SELECT COUNT(*) FROM STAFF", cn);
int rc = Convert.ToInt32(cmd.ExecuteScalar());

功能的比較

根據選擇的訪問技術和使用的數(shù)據庫版本,我們可以使用不同的功能。另外,根據需要完成的工作,我們還需要選擇連接策略。

為了使讀者能夠更好的選擇連接技術,我整理出了一個能夠在決策中使用的路線圖。在路線圖中,我找出了一些對于大多數(shù)以數(shù)據庫為中心的軟件開發(fā)項目中通用的功能。

在下面的圖表中,我對自己的心得進行了整理。我根據是否允許完成特定的數(shù)據庫任務對三種訪問技術中的每一種都進行了評估,評估的數(shù)據庫任務有:

·Pass-thru SQL━━這一提供者是否支持通過動態(tài)開發(fā)的SQL語句形成的傳遞?

·簡單的存儲過程━━這一提供者支持包括返回結果在內的調用基本的存儲過程嗎?

·In、Out、InOut參數(shù)━━這一提供者支持調用存儲過程和利用參數(shù)傳遞變量數(shù)據嗎?

·日期和貨幣━━這一提供者支持由特定廠商提供、可能造成問題的數(shù)據類型嗎?

·LOBs━━這一提供者支持大對象數(shù)據類型的處理嗎?

根據使用的連接技術,我們能夠完成不同類型的任務,因為每種提供者都有自己可以完成的工作。有一些問題是我們值得注意的。

例如,ODBC不支持DB2的存儲過程。因此,如果開發(fā)的應用軟件非常依賴于存儲過程,我們在選擇訪問技術時就不能考慮ODBC,而應當考慮OleDb或Managed Provider。OleDb不支持LOB數(shù)據類型,如果要存取LOB類型的數(shù)據(例如JPEG文件),我們可以使用ODBC或Managed Provider。目前,Managed Provider不能在DB2 V7或以前版本上運行,除非在應用程序和基于主機的DB2系統(tǒng)之間運行著DB2 Connect V8。

有趣的是,在使用存儲過程的參數(shù)時,DB2 V7和OleDb有一個非常著名的bug。我們能夠從存儲過程中返回數(shù)據,但在OleDb+DB2 V7平臺上,我們不能在應用程序與存儲過程之間傳遞參數(shù)。#p#

性能比較

為了衡量提供者的性能和向讀者提供指導,我們將定義一個有效的測試腳本,并對各種提供者的關健性能進行測試。為了比較各種連接技術的性能,我們開發(fā)了一些簡單的Web網頁,一個網頁面向執(zhí)行完全相同功能的測試,這將使我們掌握分析不同連接技術情況下輸出的控制數(shù)據。

如果嚴格地從性能的角度來看,我們發(fā)現(xiàn),Managed Provider在訪問DB2數(shù)據庫時的性能***。在這一簡單的測試中,有二個重要的數(shù)字值得關注:每秒鐘的請求(RPS)能夠使我們感受到訪問的規(guī)模,OleDb和ODBC在這方面的表現(xiàn)基本相似,但Managed Provider的表現(xiàn)要好一些(大約高10%左右);收到***一字節(jié)的時間(TTLB)是從終端用戶的角度看到的響應時間,在這一方面,Managed Provider的性能再次比OleDb和ODBC高出10%左右。

最值得注意的是,盡管提供的功能不同,但OleDb和ODBC在有負荷的情況下的性能基本相同。IBM公司的Managed Provider的性能***,而且提供了在訪問DB2 V8時最可靠的功能。但是,如果沒有DB2 Connect作中間體,它不支持DB2 V7以及更低的版本。

對于應用軟件開發(fā)人員而言,使用DB2作后端與使用其它通過ADO或ADO.NET訪問的關系數(shù)據庫一樣簡單。ADO.NET為我們完成了所有抽象工作。在選擇DB2還是其它數(shù)據庫時,盡管存在架構方面的考慮,但作為開發(fā)人員,我們的工作應當是可預測和可管理的。
 

責任編輯:段燃 來源: 九網互連
相關推薦

2010-09-07 08:35:40

DB2常用函數(shù)

2011-03-16 14:36:31

DB2開發(fā)

2009-08-25 17:20:57

C#實現(xiàn)OLE DB的

2009-12-16 10:42:04

.NET DB2

2010-08-25 14:46:53

DB2PostgreSQL開發(fā)

2010-01-08 11:47:15

ibmdwDB2

2010-08-25 15:13:22

DB2Oracle數(shù)據庫

2009-07-22 14:44:36

ibmdw

2011-04-15 13:21:41

DB2翻頁存儲

2010-08-25 09:56:02

DB2存儲過程

2011-11-30 21:46:24

ibmdwDB2 pureXML

2010-08-27 15:37:22

DB2ADO.NET Pro

2010-08-19 10:53:27

DB2dart 工具

2010-08-26 11:37:38

DB2命令

2010-11-03 15:49:32

DB2刪除表

2010-09-06 15:13:05

DB2

2010-11-02 14:08:29

DB2創(chuàng)建用戶

2010-11-03 14:16:29

DB2增量備份

2010-11-04 11:07:56

DB2管理命令

2010-11-04 14:19:46

DB2事件監(jiān)控
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99久热| 免费播放一级片 | 成人在线中文字幕 | 天堂久久天堂综合色 | h片在线观看网站 | 久久伊 | 精品久久亚洲 | 青青久草 | 在线色| 国产成人综合一区二区三区 | 国产一区二区免费在线 | 久久精品美女 | 91久久精品日日躁夜夜躁欧美 | 欧美一区二区大片 | 国产精品国产精品国产专区不卡 | 日韩久久久久久久 | 欧美日韩综合一区 | 成人av电影在线观看 | 成年人黄色一级片 | 日本一区二区三区精品视频 | 天天激情综合 | 日韩不卡在线 | 日本久久视频 | 日韩综合在线 | 99久久99久久精品国产片果冰 | 一区二区三区四区视频 | 天天看天天爽 | 成人三级视频 | 欧美精品一区二区三区四区 在线 | 欧美精品在线免费 | 久久久片| 亚欧精品一区 | 久久久国产精品 | 美女久久视频 | 国产精品一区二区在线观看 | 国产色网| 国产一级黄色网 | 亚洲精品乱码久久久久久久久 | 欧美日韩在线综合 | 国产免费一区二区三区 | 精品日本久久久久久久久久 |