日期:2014-05-16  浏览次数:21070 次

存储过程Insert为什么比PLSQL慢好多
我有一张表 A,此表有几个索引,有一个字段ID,是用sequence触发器实现自增的。

我在PLSQL中执行Insert into A Select * from B 的速度大概是3秒,在存储过程中执行需要90秒。

我执行的是同样的SQL语句,存储过程中没有参数。

后来我发现将表的触发器去掉的话,那么存储过程中他执行的速度也会非常快。

请问有高手知道为什么在PLSQL中执行很快,存储过程中很慢吗?难道不能在存储过程中插入数据到有触发器
的表吗?

------解决方案--------------------
同求解,帮顶了。
------解决方案--------------------
你给出的信息太少了。
表结构、触发器脚本、数据量、索引这些都有影响。
------解决方案--------------------
除了存储过程的定义,其他一模一样?没有加任何东西?


------解决方案--------------------
建议 在 存储过程里面 捕获 sql的执行计划,和你单独运行sql的执行计划是否一样

我感觉这种问题,就是执行计划有改变,虽然sql是一致的。
------解决方案--------------------
明天我也去试下看看。。

触发器这个东西能不用就不用。很耗性能