Stored procedures 存储过程和准备好的语句之间的区别?
存储过程和准备好的语句之间有什么区别。。。哪一个更好,为什么。。。!!我试着用谷歌搜索它,但没有更好的文章…一个存储过程存储在数据库中-取决于哪个数据库(Oracle、MS SQL Server等)被编译,并且在服务器上创建时可能会进行优化 准备好的语句是由服务器解析的语句,服务器创建执行计划,以便在运行该语句时随时执行。。。通常,当一个语句被多次运行时,它是有意义的。。。根据数据库服务器(Oracle等)和有时的配置选项,这些“准备”是特定于会话的或“全局的”Stored procedures 存储过程和准备好的语句之间的区别?,stored-procedures,prepared-statement,Stored Procedures,Prepared Statement,存储过程和准备好的语句之间有什么区别。。。哪一个更好,为什么。。。!!我试着用谷歌搜索它,但没有更好的文章…一个存储过程存储在数据库中-取决于哪个数据库(Oracle、MS SQL Server等)被编译,并且在服务器上创建时可能会进行优化 准备好的语句是由服务器解析的语句,服务器创建执行计划,以便在运行该语句时随时执行。。。通常,当一个语句被多次运行时,它是有意义的。。。根据数据库服务器(Oracle等)和有时的配置选项,这些“准备”是特定于会话的或“全局的” 当您比较这两种语言时,没有“更好
当您比较这两种语言时,没有“更好”的了,因为它们有自己的特定用例…存储过程是PL/SQL语言中的一系列指令。是一种由某些DBMS实现的编程语言,它允许您存储经常应用于模型的查询序列,并与应用层共享处理负载 准备语句是使用占位符而不是实际值编写的查询。您编写查询,DBMS只编译一次,然后您只需将值传递到占位符中。使用预先准备好的语句的优点是可以显著提高性能,并保护应用程序免受SQL注入的影响 不同之处在于,您无法存储准备好的语句。每次需要执行时,都必须“准备”它们。另一方面,存储过程可以被存储,并与模式相关联,但是您需要知道PL/SQL来编写它们 您必须检查您的DBMS是否支持它们 两者都是非常有用的工具,您可能希望将它们结合起来
希望这个简短的解释对你有用 其他答案已经暗示了这一点,但我想明确列出利弊: 存储过程 优点:
这是我经过几个月的断断续续地研究这两种结构之间的差异后得出的结论。如果有人能够纠正我所做的错误概括,那么声誉损失是值得的。这个答案对我来说最有意义。在IBM站点上,它声明,正如您所做的那样,
[存储过程]…将加快执行速度,因为存储过程中包含的SQL语句是在创建存储过程时准备和优化的。
除了批量插入,我无法理解准备好的语句的价值,因为它们只与脚本一样长,必须在下次调用时重新准备。我正在寻找类似SQLite prepare_v3的东西,而存储过程似乎是最接近的。谢谢