說明:如果您有任何疑問或想咨詢其他業(yè)務(wù)請撥打電話 400 685 0732
全網(wǎng)監(jiān)測海量數(shù)據(jù)按需發(fā)布監(jiān)測預(yù)警
實時把握輿情動態(tài)精準(zhǔn)追溯信息源頭
存儲過程(StoredProcedure)是在大型數(shù)據(jù)庫系統(tǒng)中,一組為了完成特定功能的SQL語句集,存儲在數(shù)據(jù)庫中,經(jīng)過第一次編譯后再次調(diào)用不需要再次編譯,用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它,存儲過程是數(shù)據(jù)庫中的一個重要對象;存儲過程中可以包含邏輯控制語句和數(shù)據(jù)操縱語句,它可以接受參數(shù),輸出參數(shù),返回單個或多個結(jié)果集以及返回值。
sql存儲過程——存儲過程的優(yōu)點
優(yōu)點:
由于應(yīng)用程序隨著時間推移會不斷更改,增刪功能,SQL語句會變得更復(fù)雜,存儲過程為封裝此類代碼提供了一個替換位置;
由于存儲過程在創(chuàng)建時即在數(shù)據(jù)庫服務(wù)器上進(jìn)行了編譯并存儲在數(shù)據(jù)庫中,所以存儲過程運(yùn)行要比單個的SQL語句塊要快;
由于在調(diào)用時只需用提供存儲過程名和必要的參數(shù)信息,所以在一定程度上也可以減少網(wǎng)絡(luò)流量,簡單網(wǎng)絡(luò)負(fù)擔(dān);
可維護(hù)性高,更新存儲過程通常比更改,測試以及重新部署程序集需要較少的時間和精力;
代碼精簡一致,一個存儲過程可以用于應(yīng)用程序代碼的不同位置;
增強(qiáng)安全性:
通過向用戶授予對存儲過程(而不是基于表)的訪問權(quán)限,它們可以提供對特定數(shù)據(jù)的訪問;
提高代碼安全,防止SQL注入(但未徹底解決,例如將數(shù)據(jù)操作語言DML附加到輸入?yún)?shù));
SQLParameter類指定存儲過程參數(shù)的數(shù)據(jù)類型,作為深層次防御性策略的一部分,可以驗證用戶提供的值類型(但也不是萬無一失,還是應(yīng)該傳遞至數(shù)據(jù)庫前得到附加驗證)
存儲過程的缺點
缺點:
如果更改范圍大到需要對輸入存儲過程的參數(shù)進(jìn)行更改,或者要更改由其返回的數(shù)據(jù),則仍需要更新程序集中的代碼以添加參數(shù),等等;
可移植性差,由于存儲過程將應(yīng)用程序綁定到Server,因此使用存儲過程封裝業(yè)務(wù)邏輯將限制應(yīng)用程序的可移植性;如果應(yīng)用程序的可移植性在您的環(huán)境中非常重要,則將業(yè)務(wù)邏輯封裝在不特定于RDBMS的中間層中可能是一個更佳的選擇
存儲過程(storedprocedure)有時也稱sproc,它是真正的腳本,更準(zhǔn)確地說,它是批處理(batch),但都不是很確切,它存儲與數(shù)據(jù)庫而不是單獨(dú)的文件中。存儲過程中有輸入?yún)?shù),輸出參數(shù)以及返回值等。如果大家還想了解更多與之有關(guān)的信息,歡迎關(guān)注我們文軍營銷的官網(wǎng)。
推薦閱讀
說明:如果您有任何疑問或想咨詢其他業(yè)務(wù)請撥打電話 400 685 0732