SQL需要花费很长时间来更新表

问题描述 投票:0回答:3

我只是通过使用一个简单的更新查询(仅5条记录)来更新SQL表之一,它运行了这么长时间,没有结果。

请帮帮我。

UPDATE ETL_Phone_Number 
SET 
status_flag = 'N' 
WHERE 
status_flag = 'P'; 

表创建查询:

create table ETL_Phone_Number_Updated
(
CRM_ID  varchar2 (250),
Addr_Hash_Key   varchar2(250),
Phone_Number varchar2 (250),
status varchar2 (250),
status_flag varchar2 (250)
)
sql oracle
3个回答
0
投票

请尝试终止与此表相关的所有会话,然后重试。


0
投票

最可能导致这种行为的原因可能是另一个会话,试图在不提交表的情况下更改表中的数据。

为了找出谁阻止了该对象,请向数据库询问以下内容。

select s.sid, s.serial# 
  from dba_locks l,
       all_objects o,
       v$session s
 where l.lock_id1 = o.object_id
   and l.session_id = s.SID
   and o.object_name = upper('ETL_Phone_Number');

然后如果返回行,请执行以下命令立即更改系统终止会话'sid,serial#';

最后一条语句将终止会话并释放该表以进行更新


0
投票

您可以使用此

ALTER SYSTEM KILL SESSION 'sid,serial#';

如果无法使用,也请参考此链接:https://oracle-base.com/articles/misc/killing-oracle-sessions

© www.soinside.com 2019 - 2024. All rights reserved.