【发布时间】:2013-04-01 09:10:06
【问题描述】:
我想知道如何使用等价于:
SET ARITHABORT ON
与
WITH RECOMPILE option
informix 存储过程中?
【问题讨论】:
标签: stored-procedures informix
我想知道如何使用等价于:
SET ARITHABORT ON
与
WITH RECOMPILE option
informix 存储过程中?
【问题讨论】:
标签: stored-procedures informix
SET ARITHABORT ON
Sql Server 手册说 : 溢出时终止查询或 查询执行过程中出现被零除错误。
在 Informix 中,默认情况下,在执行任何 UDR/SP(过程或函数)期间发生的任何错误都将触发异常,这将在用户会话级别自动引发。这将包括任何算术错误。
您可以在 SPL 中做相反的事情,包括一个不允许此异常到达用户会话范围的处理。 为此,请阅读 ON EXCEPTION
WITH RECOMPILE option
Sql Server 手册说:创建一个存储过程,指定 其定义中的 WITH RECOMPILE 选项表示 SQL Server 不缓存此存储过程的计划;存储过程 每次执行时都会重新编译。使用 WITH RECOMPILE 选项 当存储过程采用值差异很大的参数时 在存储过程的执行之间,导致不同的 每次都要创建执行计划。使用此选项是 不常见并导致存储过程执行得更慢, 因为存储过程每次都必须重新编译 执行。
在 Informix 运行类似的解决方案:update statistics for procedure <your_proc>;
查看Informix Manual here的解释
【讨论】: