(原創) 何時該使用Stored Procedure? (Database) (SQL Server) (T-SQL)

Abstract
目前分散式開發,比較不強調使用Stored Procedure,而是Data Access Layer僅做單純存取SQL Server,邏輯則寫在BLL,若你有以下的需求,則Stored Procedure仍然適合你。

Introduction
1.
SQL Script Reuse
使用Class寫法僅能達到C#部分的程式碼重複使用,若要達到SQL部分的程式碼重複使用,就必須將SQL寫在Stored Procedure裡。

2.SQL Script Reuse
當資料庫需給其他Developer使用時,只要將Stored Procedure給他,告訴他該Stored Procedure的用法即可,不需將整個資料庫的架構解釋給他聽。

3.安全性
當資料庫需給其他Developer使用時,不需開放整個Table的讀取或寫入權限,只需開放Stored Procedure的使用權限即可,因此對權限可以有較嚴謹控制。

4.執行速度:每次使用Ad Hoc Query時,SQL Server的CPU time非常高,需重新Parse,且重新製作Execution Plan,但使用Stored Procedure時,只有第一次執行時CPU time較高,此時為了製作Execution Plan,並將其Cache起來,當第二次執行該Stored Procedure時,CPU time幾乎為0,可重複使用該Execution Plan。

5.方便Debug
可單獨對Strored Procedure做Unit Test。

6.方便使用Profiler做Tuning
可單獨對Stored Procedure做Index Tuning。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值