存储过程Insert为什么比PLSQL慢好多
我有一张表 A,此表有几个索引,有一个字段ID,是用sequence触发器实现自增的。
我在PLSQL中执行Insert into A Select * from B 的速度大概是3秒,在存储过程中执行需要90秒。
我执行的是同样的SQL语句,存储过程中没有参数。
后来我发现将表的触发器去掉的话,那么存储过程中他执行的速度也会非常快。
请问有高手知道为什么在PLSQL中执行很快,存储过程中很慢吗?难道不能在存储过程中插入数据到有触发器
的表吗?
[解决办法]
你给出的信息太少了。
表结构、触发器脚本、数据量、索引这些都有影响。
[解决办法]
除了存储过程的定义,其他一模一样?没有加任何东西?
[解决办法]
建议 在 存储过程里面 捕获 sql的执行计划,和你单独运行sql的执行计划是否一样
我感觉这种问题,就是执行计划有改变,虽然sql是一致的。
[解决办法]
明天我也去试下看看。。
触发器这个东西能不用就不用。很耗性能