為什么存儲過程比sql語句效率高?


存儲過程經過預編譯處理 而SQL查詢沒有

SQL語句需要先被數據庫引擎處理成低級的指令 然后才執行

-------------------------------------------------------

如果是只執行一次的話,存儲過程不一定比SQL語句效率高.因為存儲過程有個預先編譯的過程.就是.啟動服務器后或者第一次執行后(可以設置).就可以把存儲過程加載到高速緩存中,這樣以后調用起來就不用再通過編譯 執行效率當然就高嘍..另外執行存儲過程只需要傳遞幾個參數..用語句的話可能需要一大串.有效減少了傳遞數據.

-------------------------------------------------------

1   存儲過程允許標准組件式編程   
存儲過程在被創建以后可以在程序中被多次調用而不必重新編寫該存儲過程的sql
語句而且數據庫專業人員可隨時對存儲過程進行修改但對應用程序源代碼毫無影響因
為應用程序源代碼只包含存儲過程的調用語句從而極大地提高了程序的可移植性
2 存儲過程能夠實現較快的執行速度
如果某一操作包含大量的transaction-sql 代碼或分別被多次執行那么存儲過程要
比批處理的執行速度快很多因為存儲過程是預編譯的在首次運行一個存儲過程時查詢優化器對其進行分析優化並給出最終被存在系統表中的執行計划而批處理的transaction-
sql 語句在每次運行時都要進行編譯和優化因此速度相對要慢一些
3 存儲過程能夠減少網絡流量
對於同一個針對數據數據庫對象的操作如查詢修改如果這一操作所涉及到的
transaction-sql 語句被組織成一存儲過程那么當在客戶計算機上調用該存儲過程時
網絡中傳送的只是該調用語句否則將是多條sql 語句從而大大增加了網絡流量降
低網絡負載
4 存儲過程可被作為一種安全機制來充分利用
系統管理員通過對執行某一存儲過程的權限進行限制從而能夠實現對相應的數據訪
問權限的限制避免非授權用戶對數據的訪問保證數據的安全
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM