我有一张表 A,此表有几个索引,有一个字段ID,是用sequence触发器实现自增的。
我在PLSQL中执行Insert into A Select * from B 的速度大概是3秒,在存储过程中执行需要90秒。
我执行的是同样的SQL语句,存储过程中没有参数。
后来我发现将表的触发器去掉的话,那么存储过程中他执行的速度也会非常快。
请问有高手知道为什么在PLSQL中执行很快,存储过程中很慢吗?难道不能在存储过程中插入数据到有触发器 的表吗?
建议 在 存储过程里面 捕获 sql的执行计划,和你单独运行sql的执行计划是否一样
我感觉这种问题,就是执行计划有改变,虽然sql是一致的。
触发器是耗时。 我用我开发的程序去调用这个存储过程就非常快, 应该是调试的原因吧,我在PLSQL中用的是测试,所以慢吧。
|