SQL Server存储过程

存储过程提供高效率和安全性优势

Microsoft SQL Server提供了存储过程机制,通过将Transact-SQL语句分组为可管理的块来简化数据库开发过程。 大多数SQL Server开发人员都非常欣赏存储过程,他们发现他们获得的高效和安全优势非常值得及时进行前期投资。

使用存储过程的好处

为什么开发人员应该使用存储过程?

以下是这项技术的主要优点:

存储过程与用户定义的函数类似,但存在细微差别。

结构体

存储过程与其他编程语言中的构造类似。

他们接受在执行时指定的输入参数形式的数据。 这些输入参数(如果实现的话)被用于执行一系列产生一些结果的语句。 此结果通过使用记录集,输出参数和返回码返回到调用环境。

这可能听起来很满意,但你会发现存储过程其实很简单。

我们来看看与本页底部显示的名为inventory的表相关的实际示例。 这些信息会实时更新,仓库管理人员会不断检查存储在仓库中的产品的水平,并可供发货。 过去,每位经理都会运行类似以下的查询:

选择产品,数量
从库存中
WHERE仓库='FL'

这导致了SQL Server的低效率性能。 每次仓库管理者执行查询时,数据库服务器都被迫重新编译查询并从头开始执行。 它还要求仓库经理了解SQL和适当的权限来访问表信息。

相反,该过程可以通过使用存储过程来简化。 以下是称为sp_GetInventory的过程的代码,用于检索给定仓库的库存水平。

CREATE PROCEDURE sp_GetInventory
@location varchar(10)

选择产品,数量
从库存中
WHERE Warehouse = @location

佛罗里达仓库经理可以通过发出以下命令来访问库存水平:

EXECUTE sp_GetInventory'FL'

纽约仓库经理可以使用相同的存储过程来访问该区域的库存:

EXECUTE sp_GetInventory'NY'

当然,这是一个简单的例子,但是抽象的好处可以在这里看到。 仓库经理不需要了解SQL或程序的内部工作。 从性能角度来看,存储过程可以创造奇迹。 SQL Server一次创建一个执行计划,然后通过在执行时插入适当的参数来重新使用它。

既然您已经了解了存储过程的好处,那么您就可以使用它们了。

尝试一些示例并衡量所实现的性能增强 - 您会感到惊讶!

库存表

ID 产品 仓库 数量
142 绿豆 纽约 100
214 豌豆 FL 200
825 玉米 纽约 140
512 利马豆 纽约 180
491 番茄 FL 80
379 西瓜 FL 85