自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

闡述ADO.NET存儲(chǔ)過程優(yōu)缺點(diǎn)

開發(fā) 后端
這里總結(jié)了ADO.NET存儲(chǔ)過程的優(yōu)缺點(diǎn),在應(yīng)用程序中,通常會(huì)大量使用ADO.NET存儲(chǔ)過程,這是因?yàn)榫S護(hù)方便、重用性、分工的明確化、預(yù)編譯提高效率、對(duì)于需要多次訪問數(shù)據(jù)的復(fù)雜操作。

之前我們就ADO.NET存儲(chǔ)過程介紹過,但是我又看到了關(guān)于存儲(chǔ)過程的資料,這里就在深入的還大家討論一下吧。在應(yīng)用Command對(duì)象時(shí),其命令可以是存儲(chǔ)過程名稱。那么,什么是存儲(chǔ)過程?為什么要使用存儲(chǔ)過程?首先,看看存儲(chǔ)過程的定義。將常用的或很復(fù)雜的工作,預(yù)先用SQL語句寫好并用一個(gè)指定的名稱存儲(chǔ)起來,被存儲(chǔ)起來的就是存儲(chǔ)過程。那么以后要叫數(shù)據(jù)庫(kù)提供與已定義好的存儲(chǔ)過程的功能相同的服務(wù)時(shí),只需調(diào)用execute,即可自動(dòng)完成命令。

ADO.NET存儲(chǔ)過程的優(yōu)缺點(diǎn):
◆存儲(chǔ)過程的主要優(yōu)點(diǎn)體現(xiàn)在:  
◆減少網(wǎng)絡(luò)傳輸,節(jié)約時(shí)間
◆速度快
◆出錯(cuò)的概率小
◆可利用服務(wù)器的一些特殊的資源
◆存儲(chǔ)過程的主要缺點(diǎn)體現(xiàn)在:  
◆交互性差
◆不夠靈活
◆商業(yè)邏輯層與數(shù)據(jù)庫(kù)在一起,不易移植

存儲(chǔ)過程主要致命的缺點(diǎn)就是:可能如果要更換數(shù)據(jù)庫(kù)(比如:從sql server到oracle)的話,你的存儲(chǔ)過程就都要重寫了。所以它過分依賴數(shù)據(jù)庫(kù)端,假如你要做一個(gè)工程,是可以的,但是如果你要做一個(gè)產(chǎn)品,或者以后可能還會(huì)用到這個(gè)工程的代碼的話,建議少使用。所以任何一種開發(fā)方法總有優(yōu)缺點(diǎn),不要過分依賴它。

在應(yīng)用程序中,通常會(huì)大量使用ADO.NET存儲(chǔ)過程,這是因?yàn)?/STRONG>:

第一,維護(hù)方便:如果你把所需要執(zhí)行的操作代碼寫在程序當(dāng)中,那么要做一些小修改,也要對(duì)程序做修改并重新編譯,對(duì)于用戶來講,這個(gè)時(shí)候就需要對(duì)程序加以深度測(cè)試(你說只修改了一點(diǎn)點(diǎn),但是用戶不會(huì)為你的一句話而冒風(fēng)險(xiǎn)的),存儲(chǔ)過程相對(duì)來講就簡(jiǎn)單得多,畢竟邏輯上分離出來了,即使要進(jìn)行審核,成本也遠(yuǎn)比程序要低得多;

第二,重用性:一個(gè)設(shè)計(jì)好的存儲(chǔ)過程,任何符合其輸入和輸出的程序都可以共用,同樣也改善了維護(hù)工作,如果有10個(gè)程序要用到這個(gè)存儲(chǔ)過程,那要做些修改,自然修改一個(gè)存儲(chǔ)過程所花費(fèi)的成本比程序要低得多;

#T#第三,分工的明確化:存儲(chǔ)過程如果設(shè)計(jì)得當(dāng),就可以通過一個(gè)中間的適配器(Adapter)來調(diào)用,如此在將來進(jìn)行數(shù)據(jù)庫(kù)的遷移等,就可以把相應(yīng)的工作交給具體的熟悉相關(guān)數(shù)據(jù)庫(kù)等業(yè)務(wù)的人員,而不是所有的開發(fā)人員都要進(jìn)行了解。就好比MSSQL/Oracle/DB2類似的,如果數(shù)據(jù)庫(kù)操作腳本寫在程序當(dāng)中,那么遷移的工作量將會(huì)是所有可能的程序。如果是通過存儲(chǔ)過程,那就可以交給相應(yīng)的DBA等來完成;

第四,預(yù)編譯提高效率:存儲(chǔ)過程的預(yù)編譯,可能性使得語句的執(zhí)行更優(yōu)化,特別是對(duì)于類似Oracle等具備某些高級(jí)優(yōu)化能力的,那么包括其既定的執(zhí)行計(jì)劃等可以帶來相當(dāng)?shù)男阅芴嵘?/P>

第五,對(duì)于需要多次訪問數(shù)據(jù)的復(fù)雜操作:如果寫在程序當(dāng)中,那么就需要不斷的或者大量的提取數(shù)據(jù)庫(kù)中的數(shù)據(jù)到程序中進(jìn)行運(yùn)算,而如果是使用存儲(chǔ)過程,那么就減少了應(yīng)用程序與數(shù)據(jù)庫(kù)的交互次數(shù),如此的消耗明顯要低得多。

責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2009-11-13 13:11:37

ADO.NET連接池

2009-12-22 10:58:50

ADO.NET類

2009-11-11 11:08:03

ADO.NET存儲(chǔ)過程

2009-11-11 11:19:57

ADO.NET使用

2009-12-22 10:43:48

ADO.NET類庫(kù)

2009-12-18 16:28:35

ADO.NET結(jié)構(gòu)

2009-11-03 16:51:04

ADO.NET連接池觀

2009-11-11 11:27:02

ADO.NET存儲(chǔ)過程

2010-01-04 16:02:32

ADO.NET計(jì)數(shù)器

2009-12-22 16:50:44

ADO.NET元素

2009-11-13 11:18:22

ADO.NET修改數(shù)據(jù)

2009-11-12 10:24:19

ADO.NET代碼

2009-11-11 13:38:04

ADO.NET sql

2009-12-28 15:11:36

ADO.NET專家

2009-11-03 16:37:10

2009-09-14 13:37:25

LINQ ADO.NE

2009-11-03 15:13:13

ADO .NET存儲(chǔ)過

2011-05-20 11:31:07

ADO.NET

2010-01-04 10:48:30

ADO.NET特色

2009-09-09 10:23:59

ADO.NET連接
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)