SQL обновление таблицы занимает так много времени - PullRequest
0 голосов
/ 07 января 2020

Я просто обновляю одну из таблиц SQL, используя простой запрос на обновление (всего 5 записей), он выполняется так долго и не дает результатов.

Пожалуйста, помогите мне.

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)
)

Ответы [ 3 ]

1 голос
/ 07 января 2020

Возможно, он заблокировал метки, поэтому вам нужно освободить некоторые пробелы. Вы можете использовать этот базовый c синтаксис для уничтожения сеанса:

ALTER SYSTEM KILL SESSION 'sid,serial#';

Просьба также ссылаться на эту ссылку, если она не работает: https://oracle-base.com/articles/misc/killing-oracle-sessions

0 голосов
/ 07 января 2020

наиболее вероятной причиной такого поведения может быть другой сеанс, пытающийся изменить данные в таблице без их фиксации.

Чтобы выяснить, кто заблокировал объект, запросите у базы данных следующее:

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');

Затем, если были возвращены строки, выполните следующую команду alter system kill session sid , serial # 'немедленный;

Последний оператор уничтожит сеансы и освободит таблицу для обновления

0 голосов
/ 07 января 2020

Пожалуйста, попытайтесь завершить все сеансы, связанные с этой таблицей, и повторите попытку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...