sql存儲過程和動態(tài)sql的比較
sql存儲過程和動態(tài)sql的功能類似,那么,sql存儲過程究竟比動態(tài)sql好在哪里呢?下面就將對sql存儲過程和動態(tài)sql進(jìn)行比較,供您參考。
sql存儲過程跟動態(tài)sql相比有如下優(yōu)點(diǎn):
1、 sql存儲過程允許標(biāo)準(zhǔn)組件式編程
存儲過程在被創(chuàng)建以后可以在程序中被多次調(diào)用而不必重新編寫該存儲過程的SQL
語句而且數(shù)據(jù)庫專業(yè)人員可隨時對存儲過程進(jìn)行修改但對應(yīng)用程序源代碼毫無影響因
為應(yīng)用程序源代碼只包含存儲過程的調(diào)用語句從而極大地提高了程序的可移植性
2 、sql存儲過程能夠?qū)崿F(xiàn)較快的執(zhí)行速度
如果某一操作包含大量的Transaction-SQL 代碼或分別被多次執(zhí)行那么存儲過程要
比批處理的執(zhí)行速度快很多因為存儲過程是預(yù)編譯的在首次運(yùn)行一個存儲過程時查
詢優(yōu)化器對其進(jìn)行分析優(yōu)化并給出最終被存在系統(tǒng)表中的執(zhí)行計劃而批處理的Transaction-
SQL 語句在每次運(yùn)行時都要進(jìn)行編譯和優(yōu)化因此速度相對要慢一些
3 、sql存儲過程能夠減少網(wǎng)絡(luò)流量
對于同一個針對數(shù)據(jù)數(shù)據(jù)庫對象的操作如查詢修改如果這一操作所涉及到的
Transaction-SQL 語句被組織成一存儲過程那么當(dāng)在客戶計算機(jī)上調(diào)用該存儲過程時
網(wǎng)絡(luò)中傳送的只是該調(diào)用語句否則將是多條SQL 語句從而大大增加了網(wǎng)絡(luò)流量降
低網(wǎng)絡(luò)負(fù)載
4、 sql存儲過程可被作為一種安全機(jī)制來充分利用
系統(tǒng)管理員通過對執(zhí)行某一存儲過程的權(quán)限進(jìn)行限制從而能夠?qū)崿F(xiàn)對相應(yīng)的數(shù)據(jù)訪
問權(quán)限的限制避免非授權(quán)用戶對數(shù)據(jù)的訪問保證數(shù)據(jù)的安全
【編輯推薦】