新聞中心
我們知道,存儲(chǔ)過(guò)程在數(shù)據(jù)庫(kù)操作中的使用是非常廣泛的。它具有速度快、程序簡(jiǎn)單、可重復(fù)使用、安全性高等特點(diǎn),那么什么時(shí)候使用存儲(chǔ)過(guò)程是比較適合的呢?本文我們就來(lái)介紹這一部分內(nèi)容,希望能夠?qū)ψx者有所幫助。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出太康免費(fèi)做網(wǎng)站回饋大家。
當(dāng)一個(gè)事務(wù)涉及到多個(gè)SQL語(yǔ)句時(shí)或者涉及到對(duì)多個(gè)表的操作時(shí)就要考慮用存儲(chǔ)過(guò)程;當(dāng)在一個(gè)事務(wù)的完成需要很復(fù)雜的商業(yè)邏輯時(shí)(比如,對(duì)多個(gè)數(shù)據(jù)的操作,對(duì)多個(gè)狀態(tài)的判斷更改等)要考慮;還有就是比較復(fù)雜的統(tǒng)計(jì)和匯總也要考慮,但是過(guò)多的使用存儲(chǔ)過(guò)程會(huì)降低系統(tǒng)的移植性。
為了系統(tǒng)的控制方便,例如當(dāng)系統(tǒng)進(jìn)行調(diào)整時(shí),這是只需要將后臺(tái)存儲(chǔ)過(guò)程進(jìn)行更改,而不需要更改客戶端程序。也無(wú)需重新安裝客戶端應(yīng)用程序。
存儲(chǔ)過(guò)程不僅僅適用于大型項(xiàng)目,對(duì)于中小型項(xiàng)目,使用存儲(chǔ)過(guò)程也是非常有必要的。
存儲(chǔ)過(guò)程的威力和優(yōu)勢(shì):
1.存儲(chǔ)過(guò)程只在創(chuàng)造時(shí)進(jìn)行編譯,以后每次執(zhí)行存儲(chǔ)過(guò)程都不需再重新編譯,而一般SQL 語(yǔ)句每執(zhí)行一次就編譯一次,所以使用存儲(chǔ)過(guò)程可提高數(shù)據(jù)庫(kù)執(zhí)行速度。
2.當(dāng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行復(fù)雜操作時(shí)(如對(duì)多個(gè)表進(jìn)行Update,Insert,Query,Delete 時(shí)),可將此復(fù)雜操作用存儲(chǔ)過(guò)程封裝起來(lái)與數(shù)據(jù)庫(kù)提供的事務(wù)處理結(jié)合一起使用。這些操作,如果用程序來(lái)完成,就變成了一條條的SQL語(yǔ)句,可能要多次連接數(shù)據(jù)庫(kù)。而換成存儲(chǔ),只需要連接一次數(shù)據(jù)庫(kù)就可以了。
3.存儲(chǔ)過(guò)程可以重復(fù)使用,可減少數(shù)據(jù)庫(kù)開發(fā)人員的工作量。
4.安全性高,可設(shè)定只有某此用戶才具有對(duì)指定存儲(chǔ)過(guò)程的使用權(quán)。
存儲(chǔ)過(guò)程的優(yōu)點(diǎn):
1.速度快。尤其對(duì)于較為復(fù)雜的邏輯,減少了網(wǎng)絡(luò)流量之間的消耗。
如果有的過(guò)程和函數(shù)達(dá)到了幾百行,一個(gè)微型編譯器,相信用程序就更麻煩了。
2.寫程序簡(jiǎn)單,采用存儲(chǔ)過(guò)程調(diào)用類,調(diào)用任何存儲(chǔ)過(guò)程都只要1-2行代碼。
3.升級(jí)、維護(hù)方便。
4.調(diào)試其實(shí)也并不麻煩,可以用查詢分析器。
5.如果把所有的數(shù)據(jù)邏輯都放在存儲(chǔ)過(guò)程中,那么asp.net只需要負(fù)責(zé)界面的顯示功能,出錯(cuò)的可能性最大就是在存儲(chǔ)過(guò)程。一般情況下就是這樣。
存儲(chǔ)過(guò)程的缺點(diǎn):
1.可移植性差,我一直采用sql server開發(fā),可是如果想賣自己的東西,發(fā)現(xiàn)自己簡(jiǎn)直就是在幫ms賣東西,呵呵。想換成mysql,確實(shí)移植麻煩。
2.采用存儲(chǔ)過(guò)程調(diào)用類,需要進(jìn)行兩次調(diào)用操作,一次是從sql server中取到過(guò)程的參數(shù)信息,并且建立參數(shù);第二次才是調(diào)用這個(gè)過(guò)程。多了一次消耗。
不過(guò)這個(gè)缺點(diǎn)可以在項(xiàng)目開發(fā)完成,過(guò)程參數(shù)完全確定之后,把所有過(guò)程參數(shù)信息倒入到一個(gè)xml文件中來(lái)提高性能。
當(dāng)一個(gè)業(yè)務(wù)同時(shí)對(duì)多個(gè)表進(jìn)行處理的時(shí)候采用存儲(chǔ)過(guò)程比較合適。
- 使用存儲(chǔ)過(guò)程在一般情況下會(huì)提高性能,因?yàn)閿?shù)據(jù)庫(kù)優(yōu)化了存儲(chǔ)過(guò)程的數(shù)據(jù)訪問(wèn)計(jì)劃并應(yīng)用緩存方便以后的查詢;
- 存儲(chǔ)過(guò)程單獨(dú)保護(hù)存在于數(shù)據(jù)庫(kù)中。客戶端可以獲取權(quán)限執(zhí)行存儲(chǔ)過(guò)程,而不需要對(duì)底層的具體表設(shè)置其他的訪問(wèn)權(quán)限;
- 存儲(chǔ)過(guò)程會(huì)使得維護(hù)起來(lái)更加方便,因?yàn)橥ǔP薷囊粋€(gè)存儲(chǔ)過(guò)程要比在一個(gè)已經(jīng)發(fā)布的組件中修改SQL語(yǔ)句更加方便;
- 存儲(chǔ)過(guò)程給底層數(shù)據(jù)格式增添了額外的抽象層。使得使用存儲(chǔ)過(guò)程的客戶端對(duì)存儲(chǔ)過(guò)程的實(shí)現(xiàn)細(xì)節(jié)以及對(duì)底層數(shù)據(jù)格式是隔離獨(dú)立的;
- 存儲(chǔ)過(guò)程能夠緩解網(wǎng)絡(luò)帶寬,因?yàn)榭梢耘繄?zhí)行SQL語(yǔ)句而不是從客戶端發(fā)送超負(fù)載的請(qǐng)求。
復(fù)雜的數(shù)據(jù)處理用存儲(chǔ)過(guò)程,如有些報(bào)表處理。
多條件多表聯(lián)合查詢,并做分頁(yè)處理,用存儲(chǔ)過(guò)程也比較適合。
適當(dāng)?shù)氖褂么鎯?chǔ)過(guò)程,能夠提高我們SQL查詢的性能,以便于提高我們的工作效率。本文就介紹這么多了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】
- 用企業(yè)管理器備份和還原SQL Server數(shù)據(jù)庫(kù)
- 圖解SQL Server注冊(cè)遠(yuǎn)程服務(wù)器數(shù)據(jù)庫(kù)的步驟
- 沒有SQL Server數(shù)據(jù)庫(kù)時(shí)怎樣打開.MDF文件?
- 一個(gè)SQL Server數(shù)據(jù)庫(kù)刪除數(shù)據(jù)集中重復(fù)數(shù)據(jù)的例子
- SQLServer 2008 R2數(shù)據(jù)庫(kù)SSAS建模及擴(kuò)展能力詳解
網(wǎng)頁(yè)名稱:存儲(chǔ)過(guò)程的優(yōu)缺點(diǎn)及適宜使用的場(chǎng)合詳解
鏈接地址:http://www.dlmjj.cn/article/coeosdg.html


咨詢
建站咨詢
