有个insert into table select的SQL,select部分确实是慢了点儿,不过单独执行select部分4秒钟就能返回,但是如果执行insert into table select,是死活没有结果,其实select部分是没有返回数据的(也就是抽出结果为0条)。
其他插入同一个table的SQL,如果select部分有结果的话,反而很快。
谁能解释这种现象?
...全文
34119打赏收藏
关于insert into table select的不可思议现象
有个insert into table select的SQL,select部分确实是慢了点儿,不过单独执行select部分4秒钟就能返回,但是如果执行insert into table select,是死活没有结果,其实select部分是没有返回数据的(也就是抽出结果为0条)。 其他插入同一个table的SQL,如果select部分有结果的话,反而很快。 谁能解释这种现象?
--楼主用下面的语句查询下,是不是有记录,如果有记录,就阻塞了,需要kill session
select b.sid,b.machine,c.object_name,a.oracle_username,
a.locked_mode,b.osuser,
'alter system kill session '''||b.sid||','||b.serial#||''';'
from v$locked_object a,v$session b,all_objects c
where a.session_id=b.sid and a.object_id=c.object_id;
[Quote=引用楼主 flyforlove 的回复:]
有个insert into table select的SQL,select部分确实是慢了点儿,不过单独执行select部分4秒钟就能返回,但是如果执行insert into table select,是死活没有结果,其实select部分是没有返回数据的(也就是抽出结果为0条)。