Stored Procedure的好處
為什麼要用預存程序咧?平常寫在程式裡也可以跑阿,幹嘛多此一舉另外寫一個預存程序?這樣的好處是,當你的網站程式碼外流出去的時候,拿到程式的人也沒辦法馬上就拿到你的SQL字串,因為是寫在資料庫Server上的。
當然還有其他好處,例如:
為什麼要用預存程序咧?平常寫在程式裡也可以跑阿,幹嘛多此一舉另外寫一個預存程序?這樣的好處是,當你的網站程式碼外流出去的時候,拿到程式的人也沒辦法馬上就拿到你的SQL字串,因為是寫在資料庫Server上的。
當然還有其他好處,例如:
- 提高執行效率
Stored Procedure的指令只會編譯過一次,不像寫在程式裡每執行一次就需要重新編譯,直到SQL Server重啟才需要再度重新編譯他。 - 減少網路流量
當我們使用Execute來呼叫Stored Procedure的時候,只需要傳入Stored Procedure的名稱及參數值就可以運行,而不需要像寫在程式裡,每次都要傳送整串的SQL指令及參數。 - 增加資料的安全性
預存程序與檢視表相同,都是將使用者常用且固定的查詢操作,利用T-SQL指令撰寫成一段類似副程式,讓使用者不會直接接觸到基底資料表,以達到資料的安全性。 - 模組化以便重複使用
設計者只要建立一次預存程序,並且將它儲存在資料庫中,爾後就可以提供不同使用者重複使用。
至於Stored Procedure的最大缺點,大概就是攜性較差,因為每一家RDBMS廠商所提供的預存程序之程式語法不盡相同,MS SQL Server是以T-SQL來撰寫預存程序,而其他家又是用其他的語言撰寫,所以當資料庫轉移之後就必須重寫Stored Procedure。
SQL
沒有留言:
張貼留言