SQL存儲(chǔ)過(guò)程簡(jiǎn)介及優(yōu)點(diǎn)
2012/11/28 14:56:10

      存儲(chǔ)過(guò)程是SQL語(yǔ)言中的一種,在大型的數(shù)據(jù)庫(kù)系統(tǒng)中,一系列為了達(dá)到某種特定功能的SQL語(yǔ)句。經(jīng)過(guò)重新編譯之后存儲(chǔ)在數(shù)據(jù)庫(kù)中,再通過(guò)指定的名字,并且提供參數(shù)來(lái)執(zhí)行它。

  一、SQL Server 存儲(chǔ)過(guò)程

  Transact-SQL非常類(lèi)似于Java語(yǔ)言中的方法,它可以重復(fù)調(diào)用。當(dāng)存儲(chǔ)過(guò)程執(zhí)行一次后,可以將語(yǔ)句緩存中,這樣下次執(zhí)行的時(shí)候直接使用緩存中的語(yǔ)句。這樣就可以提高存儲(chǔ)過(guò)程的性能。

  二、存儲(chǔ)過(guò)程的概念

  存儲(chǔ)過(guò)程Procedure是一組為了完成特定功能的SQL語(yǔ)句集合,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中,用戶(hù)通過(guò)指定存儲(chǔ)過(guò)程的名稱(chēng)并給出參數(shù)來(lái)執(zhí)行。

  存儲(chǔ)過(guò)程中可以包含邏輯控制語(yǔ)句和數(shù)據(jù)操縱語(yǔ)句,它可以接受參數(shù)、輸出參數(shù)、返回單個(gè)或多個(gè)結(jié)果集以及返回值。

 



  由于存儲(chǔ)過(guò)程在創(chuàng)建時(shí)即在數(shù)據(jù)庫(kù)服務(wù)器上進(jìn)行了編譯并存儲(chǔ)在數(shù)據(jù)庫(kù)中,所以存儲(chǔ)過(guò)程運(yùn)行要比單個(gè)的SQL語(yǔ)句塊要快。同時(shí)由于在調(diào)用時(shí)只需用提供存儲(chǔ)過(guò)程名和必要的參數(shù)信息,所以在一定程度上也可以減少網(wǎng)絡(luò)流量、簡(jiǎn)單網(wǎng)絡(luò)負(fù)擔(dān)。

  三、存儲(chǔ)過(guò)程的優(yōu)點(diǎn)

  1. 存儲(chǔ)過(guò)程允許標(biāo)準(zhǔn)組件式編程

  存儲(chǔ)過(guò)程創(chuàng)建后可以在程序中被多次調(diào)用執(zhí)行,而不必重新編寫(xiě)該存儲(chǔ)過(guò)程的SQL語(yǔ)句。而且數(shù)據(jù)庫(kù)專(zhuān)業(yè)人員可以隨時(shí)對(duì)存儲(chǔ)過(guò)程進(jìn)行修改,但對(duì)應(yīng)用程序源代碼卻毫無(wú)影響,從而極大的提高了程序的可移植性。

  2. 存儲(chǔ)過(guò)程能夠?qū)崿F(xiàn)較快的執(zhí)行速度

  如果某一操作包含大量的T-SQL語(yǔ)句代碼,分別被多次執(zhí)行,那么存儲(chǔ)過(guò)程要比批處理的執(zhí)行速度快得多。因?yàn)榇鎯?chǔ)過(guò)程是預(yù)編譯的,在首次運(yùn)行一個(gè)存儲(chǔ)過(guò)程時(shí),查詢(xún)優(yōu)化器對(duì)其進(jìn)行分析、優(yōu)化并給出最終被存在系統(tǒng)表中的存儲(chǔ)計(jì)劃。而批處理的T-SQL語(yǔ)句每次運(yùn)行都需要預(yù)編譯和優(yōu)化,所以速度就要慢一些。

 


  3. 存儲(chǔ)過(guò)程減輕網(wǎng)絡(luò)流量

  對(duì)于同一個(gè)針對(duì)數(shù)據(jù)庫(kù)對(duì)象的操作,如果這一操作所涉及到的T-SQL語(yǔ)句被組織成一存儲(chǔ)過(guò)程,那么當(dāng)在客戶(hù)機(jī)上調(diào)用該存儲(chǔ)過(guò)程時(shí),網(wǎng)絡(luò)中傳遞的只是該調(diào)用語(yǔ)句,否則將會(huì)是多條SQL語(yǔ)句。從而減輕了網(wǎng)絡(luò)流量,降低了網(wǎng)絡(luò)負(fù)載。

  4. 存儲(chǔ)過(guò)程可被作為一種安全機(jī)制來(lái)充分利用

  系統(tǒng)管理員可以對(duì)執(zhí)行的某一個(gè)存儲(chǔ)過(guò)程進(jìn)行權(quán)限限制,從而能夠?qū)崿F(xiàn)對(duì)某些數(shù)據(jù)訪(fǎng)問(wèn)的限制,避免非授權(quán)用戶(hù)對(duì)數(shù)據(jù)的訪(fǎng)問(wèn),保證數(shù)據(jù)的安全。

  四、系統(tǒng)存儲(chǔ)過(guò)程

  系統(tǒng)存儲(chǔ)過(guò)程是系統(tǒng)創(chuàng)建的存儲(chǔ)過(guò)程,目的在于能夠方便的從系統(tǒng)表中查詢(xún)信息或完成與更新數(shù)據(jù)庫(kù)表相關(guān)的管理任務(wù)或其他的系統(tǒng)管理任務(wù)。系統(tǒng)存儲(chǔ)過(guò)程主要存儲(chǔ)在master數(shù)據(jù)庫(kù)中,以“sp”下劃線(xiàn)開(kāi)頭的存儲(chǔ)過(guò)程。盡管這些系統(tǒng)存儲(chǔ)過(guò)程在master數(shù)據(jù)庫(kù)中,但我們?cè)谄渌麛?shù)據(jù)庫(kù)還是可以調(diào)用系統(tǒng)存儲(chǔ)過(guò)程。有一些系統(tǒng)存儲(chǔ)過(guò)程會(huì)在創(chuàng)建新的數(shù)據(jù)庫(kù)的時(shí)候被自動(dòng)創(chuàng)建在當(dāng)前數(shù)據(jù)庫(kù)中。

返回列表
返回首頁(yè) 主站蜘蛛池模板: 国产日韩av在线播放| 成熟女人牲交片免费观看视频| 亚洲色图欧美另类| 美女被爆羞羞网站在免费观看| 国产日本在线观看| 777亚洲精品乱码久久久久久| 少妇极品熟妇人妻| 久久99精品国产麻豆宅宅| 最近2019中文字幕高清字幕| 亚洲性久久久影院| 男人j桶女人j免费视频| 变态拳头交视频一区二区| 超碰aⅴ人人做人人爽欧美| 国产成人综合久久久久久| 2022天天操| 国内揄拍国内精品| gay网在线观看| 小雪与门卫老头全文阅读| 中文字幕日韩人妻不卡一区| 日本精品高清一区二区| 亚洲AV综合色区无码二区爱AV| 欧美日韩一区二区三区在线观看视频| 人人澡人人妻人人爽人人蜜桃麻豆| 精品影片在线观看的网站| 四虎永久精品免费观看| 视频一区在线观看| 国产在线激情视频| 免费能直接在线观看黄的视频 | 美女黄18以下禁止观看| 国产免费午夜a无码v视频| 成人污视频在线观看| 国产福利在线观看| 18禁白丝喷水视频www视频| 国产超碰人人爽人人做人人添| 99精品久久久久久久婷婷| 天天做天天做天天综合网| ririai66视频在线播放| 小兔子救了蛇被蛇两根进去 | 日本高清免费一本视频在线观看| 亚洲AV无一区二区三区久久| 欧美午夜片欧美片在线观看|