2010-07-15 107 views
2

爲什麼有人會在.net中使用存儲過程?另外,如果有充分的理由使用它們,我該怎麼辦?使用存儲過程

+2

我是怎麼樣的一個「生存還是毀滅」。 這取決於你想要達到什麼。請詳細說明。 – 2010-07-15 07:42:17

回答

3

在客戶端計算機上本地存儲 的使用存儲在SQL Server而不是 的Transact-SQL程序 程序的好處是:

它們允許模塊化編程。

您可以創建一次該程序, 將其存儲在數據庫中,並在程序中將其調用 任意次。 存儲過程可以由 人專門從事數據庫 編程創建,他們可以修改 獨立於程序源 代碼。

它們允許更快的執行。

如果操作需要大量 的Transact-SQL代碼或是 重複執行,存儲 程序可以比批次Transact-SQL代碼 更快。它們被解析爲 ,並在執行時首先執行優化 ,並且編譯版本爲 的存儲過程保留在內存中,以供將來使用。這意味着 存儲過程並不需要是 重新分析,並與各使用 導致更快的執行 次重新優化。

它們可以減少網絡流量。

需要數百的 線的Transact-SQL代碼的操作可以通過執行該代碼在一個過程中, 而不是由通過網絡發送數百 行代碼單個語句 可以 執行。

它們可以用作安全機制。 用戶可獲准執行存儲過程,即使 他們無權直接執行 過程的陳述。

來源:http://msdn.microsoft.com/en-us/library/aa214299%28SQL.80%29.aspx

+0

存儲過程不會比特殊查詢更快。它們像特設查詢一樣被重新修復。另外,adhoc查詢也可以從緩存的查詢計劃中受益。來源:http://www.scarydba.com/2009/09/30/pre-compiled-stored-procedures-fact-or-myth/ – 2014-01-10 16:55:59