У меня есть инструкция обновления, которая выполняется очень медленно, чтобы преобразовать ее в слияние. Я пытаюсь изменить инструкцию ниже для слияния. любые предложенияconvert self joining update to merge
UPDATE CLASS CL
SET (PARENT_CLS_TITLE,
PARENT_SECTION_FLAG,
PARENT_ACADEMIC_CODE,
PARENT_CLASS_FL
) =
(select
PARENT.CLASS_TITLE PARENT_CLASS_TITLE
,PARENT.SECTION_FLAG PARENT_SECTION_FLAG
,PARENT.ACADEMIC_CODE PARENT_ACADEMIC_CODE
,PARENT.CLASS_FL PARENT_CLASS_FL
from CLASS CHILD
, CLASS PARENT
where CHILD.PARENT_TERM_NUMBER = PARENT.TERM_CODE || '|' ||PARENT.CLASS_NUMBER
AND CL.CRSE_ID=CHILD.CRSE_ID
AND CL.CRSE_OFFER_NUM=CHILD.CRSE_OFFER_NUM
AND CL.TERM_CODE=CHILD.TERM_CODE
AND CL.SESSION_CODE=CHILD.SESSION_CODE
AND CL.CLS_SECTION_CODE=CHILD.CLS_SECTION_CODE)
Определение и индекс на столе. Это единственный материал присутствует на столе никаких других ограничений и т.д.
CREATE TABLE CLASS
(
CRSE_ID VARCHAR2(255),
CRSE_OFFER_NUM VARCHAR2(255),
TERM_CODE VARCHAR2(255),
SESSION_CODE VARCHAR2(255),
CLS_SECTION_CODE VARCHAR2(255),
CLASS_NUMBER VARCHAR2(255),
PARENT_TERM_NUMBER VARCHAR2(255),
CLASS_TITLE VARCHAR2(255),
SECTION_FLAG VARCHAR2(1),
ACADEMIC_CODE VARCHAR2(255),
CLASS_FL VARCHAR2(1),
PARENT_CLS_TITLE VARCHAR2(255),
PARENT_SECTION_FLAG VARCHAR2(1),
PARENT_ACADEMIC_CODE VARCHAR2(255),
PARENT_CLASS_FL VARCHAR2(1)
);
CREATE UNIQUE INDEX IDX_CLASS ON CLASS
(CRSE_ID, CRSE_OFFER_NUM, TERM_CODE, SESSION_CODE, CLS_SECTION_CODE);
Измените свой вопрос и включите определение таблицы CLASS, включая все типы данных, ключи (первичные, уникальные и чужие) и индексы. Благодарю. –
И, в зависимости от ответа на вопрос Боба, возможно, вам может не понадобиться инструкция MERGE (хотя для этого типа проблем MERGE часто является лучшим выбором). Вы можете, например, иметь возможность обновлять таблицу непосредственно через соединение. Сэкономить время, если таковые имеются, произойдет из перезаписи заявления, не обязательно из-за использования MERGE над UPDATE. (Но, опять же, это зависит от того, какие ключи у вас могут быть в таблице CLASS.) – mathguy
Я предоставил скрипт из жабы. Спасибо, что посмотрели на это. В этой таблице много строк, и обновление выполняется навсегда. – user1751356