2010-07-15 131 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