存儲過程類似與我們編程時的函數(shù),將常用的或很復(fù)雜的工作,預(yù)先用SQL語句寫好并用一個指定的名稱存儲起來, 那么以后要叫數(shù)據(jù)庫提供與已定義好的存儲過程的功能相同的服務(wù)時,只需調(diào)用execute,即可自動完成命令,跟函數(shù)調(diào)用差不多 !

優(yōu)點

1.存儲過程只在創(chuàng)造時進行編譯,以后每次執(zhí)行存儲過程都不需再重新編譯,而一般SQL語句每執(zhí)行一次就編譯一次,所以使用存儲過程可提高數(shù)據(jù)庫執(zhí)行速度。
2.當對數(shù)據(jù)庫進行復(fù)雜操作時(如對多個表進行Update,Insert,Query,Delete時),可將此復(fù)雜操作用存儲過程封裝起來與數(shù)據(jù)庫提供的事務(wù)處理結(jié)合一起使用。
3.存儲過程可以重復(fù)使用,可減少數(shù)據(jù)庫開發(fā)人員的工作量
4.安全性高,可設(shè)定只有某此用戶才具有對指定存儲過程的使用權(quán)

缺點

1、如果邏輯全部在存儲過程中實現(xiàn),那么涉及廣泛業(yè)務(wù)邏輯和處理的應(yīng)用程序可能會給服務(wù)器帶來過重負荷。這類處理包括數(shù)據(jù)傳輸、數(shù)據(jù)遍歷、數(shù)據(jù)轉(zhuǎn)換和大計算量操作。
應(yīng)把這類處理移到業(yè)務(wù)過程或數(shù)據(jù)訪問邏輯組件中,與數(shù)據(jù)庫服務(wù)器相比,它們具有更好的可縮放性。
2、不要把所有業(yè)務(wù)邏輯都放在存儲過程中。如果必須在 T - SQL 中修改業(yè)務(wù)邏輯,應(yīng)用程序的維護和靈活性將成為問題。例如,支持多個 RDBMS 的 ISV 應(yīng)用程序不應(yīng)當
分別為每個系統(tǒng)維護存儲過程。 通常,存儲過程的編寫與維護是一項專門技能,并非所有開發(fā)人員都能夠掌握。這會造成項目開發(fā)計劃的瓶頸。