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

存儲過程的優(yōu)缺點及適宜使用的場合詳解

數(shù)據(jù)庫 SQL Server
存儲過程不僅僅適用于大型項目,對于中小型項目,使用存儲過程也是非常有必要的。本文我們主要介紹了使用存儲過程的優(yōu)勢以及存儲過程適宜使用的場合,希望能夠?qū)δ兴鶐椭?/div>

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

當(dāng)一個事務(wù)涉及到多個SQL語句時或者涉及到對多個表的操作時就要考慮用存儲過程;當(dāng)在一個事務(wù)的完成需要很復(fù)雜的商業(yè)邏輯時(比如,對多個數(shù)據(jù)的操作,對多個狀態(tài)的判斷更改等)要考慮;還有就是比較復(fù)雜的統(tǒng)計和匯總也要考慮,但是過多的使用存儲過程會降低系統(tǒng)的移植性。

為了系統(tǒng)的控制方便,例如當(dāng)系統(tǒng)進(jìn)行調(diào)整時,這是只需要將后臺存儲過程進(jìn)行更改,而不需要更改客戶端程序。也無需重新安裝客戶端應(yīng)用程序。

存儲過程不僅僅適用于大型項目,對于中小型項目,使用存儲過程也是非常有必要的。

存儲過程的威力和優(yōu)勢:

1.存儲過程只在創(chuàng)造時進(jìn)行編譯,以后每次執(zhí)行存儲過程都不需再重新編譯,而一般SQL 語句每執(zhí)行一次就編譯一次,所以使用存儲過程可提高數(shù)據(jù)庫執(zhí)行速度。

2.當(dāng)對數(shù)據(jù)庫進(jìn)行復(fù)雜操作時(如對多個表進(jìn)行Update,Insert,Query,Delete 時),可將此復(fù)雜操作用存儲過程封裝起來與數(shù)據(jù)庫提供的事務(wù)處理結(jié)合一起使用。這些操作,如果用程序來完成,就變成了一條條的SQL語句,可能要多次連接數(shù)據(jù)庫。而換成存儲,只需要連接一次數(shù)據(jù)庫就可以了。

3.存儲過程可以重復(fù)使用,可減少數(shù)據(jù)庫開發(fā)人員的工作量。

4.安全性高,可設(shè)定只有某此用戶才具有對指定存儲過程的使用權(quán)。

存儲過程的優(yōu)點:

1.速度快。尤其對于較為復(fù)雜的邏輯,減少了網(wǎng)絡(luò)流量之間的消耗。

如果有的過程和函數(shù)達(dá)到了幾百行,一個微型編譯器,相信用程序就更麻煩了。

2.寫程序簡單,采用存儲過程調(diào)用類,調(diào)用任何存儲過程都只要1-2行代碼。

3.升級、維護(hù)方便。

4.調(diào)試其實也并不麻煩,可以用查詢分析器。

5.如果把所有的數(shù)據(jù)邏輯都放在存儲過程中,那么asp.net只需要負(fù)責(zé)界面的顯示功能,出錯的可能性最大就是在存儲過程。一般情況下就是這樣。

存儲過程的缺點:

1.可移植性差,我一直采用sql server開發(fā),可是如果想賣自己的東西,發(fā)現(xiàn)自己簡直就是在幫ms賣東西,呵呵。想換成mysql,確實移植麻煩。

2.采用存儲過程調(diào)用類,需要進(jìn)行兩次調(diào)用操作,一次是從sql server中取到過程的參數(shù)信息,并且建立參數(shù);第二次才是調(diào)用這個過程。多了一次消耗。

不過這個缺點可以在項目開發(fā)完成,過程參數(shù)完全確定之后,把所有過程參數(shù)信息倒入到一個xml文件中來提高性能。

當(dāng)一個業(yè)務(wù)同時對多個表進(jìn)行處理的時候采用存儲過程比較合適。

  1. 使用存儲過程在一般情況下會提高性能,因為數(shù)據(jù)庫優(yōu)化了存儲過程的數(shù)據(jù)訪問計劃并應(yīng)用緩存方便以后的查詢;
  2. 存儲過程單獨保護(hù)存在于數(shù)據(jù)庫中。客戶端可以獲取權(quán)限執(zhí)行存儲過程,而不需要對底層的具體表設(shè)置其他的訪問權(quán)限;
  3. 存儲過程會使得維護(hù)起來更加方便,因為通常修改一個存儲過程要比在一個已經(jīng)發(fā)布的組件中修改SQL語句更加方便;
  4. 存儲過程給底層數(shù)據(jù)格式增添了額外的抽象層。使得使用存儲過程的客戶端對存儲過程的實現(xiàn)細(xì)節(jié)以及對底層數(shù)據(jù)格式是隔離獨立的;
  5. 存儲過程能夠緩解網(wǎng)絡(luò)帶寬,因為可以批量執(zhí)行SQL語句而不是從客戶端發(fā)送超負(fù)載的請求。

復(fù)雜的數(shù)據(jù)處理用存儲過程,如有些報表處理。

多條件多表聯(lián)合查詢,并做分頁處理,用存儲過程也比較適合。

適當(dāng)?shù)氖褂么鎯^程,能夠提高我們SQL查詢的性能,以便于提高我們的工作效率。本文就介紹這么多了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. 用企業(yè)管理器備份和還原SQL Server數(shù)據(jù)庫
  2. 圖解SQL Server注冊遠(yuǎn)程服務(wù)器數(shù)據(jù)庫的步驟
  3. 沒有SQL Server數(shù)據(jù)庫時怎樣打開.MDF文件?
  4. 一個SQL Server數(shù)據(jù)庫刪除數(shù)據(jù)集中重復(fù)數(shù)據(jù)的例子
  5. SQLServer 2008 R2數(shù)據(jù)庫SSAS建模及擴(kuò)展能力詳解
責(zé)任編輯:趙鵬 來源: 博客園
相關(guān)推薦

2021-10-09 09:52:17

云存儲公共云遷移

2009-11-04 16:23:09

ADO.NET存儲過程

2018-12-11 10:59:35

Tomcat NginxApache

2009-08-10 17:41:42

C# Singleto

2018-08-28 15:10:16

數(shù)據(jù)庫數(shù)據(jù)存儲Hadoop

2017-10-23 13:20:37

2010-11-11 17:15:13

SQL Server視

2021-09-08 09:00:00

DevOps開發(fā)IT

2019-05-28 15:20:17

2019-10-10 17:22:07

多云CIO多云策略

2024-05-23 16:56:58

2012-05-03 09:58:19

VLANVLAN劃分

2020-07-10 11:30:29

組合式架構(gòu)傳統(tǒng)存儲存儲

2014-07-24 10:28:40

NginxLVSHAProxy

2010-08-31 14:49:57

CSS居中

2010-09-02 09:59:52

CSS SpritesCSS

2017-11-22 09:00:12

RAID類型磁盤

2014-05-12 09:26:08

2010-08-27 09:45:49

CSS Sprites

2015-04-03 10:43:49

點贊
收藏

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