약 93 백만 ml 레코드가있는 테이블을 업데이트해야합니다. DB는 5 초당 10k 레코드를 업데이트했으며, 이제는 약 60 백만 건의 업데이트 된 레코드 이후에 다음 10k 레코드를 업데이트합니다. 30-60 초가 걸리므로 null 인 열을 업데이트해야하는 이유는 모르겠다.
내가 커밋 각 10 개 K 레코드 루프 사용 : 많은 레코드가있는 Oracle DB의 업데이트 속도를 높입니다.
LOOP
UPDATE TABLE
SET DATE_COLUMN = v_hist_date
WHERE DATE_COLUMN IS NULL
AND ROWNUM <= c_commit_limit
AND NOT_REMOVED IS NULL;
EXIT WHEN SQL%ROWCOUNT = 0;
COMMIT;
END LOOP;
당신이 너무 느리게 왜 어떤 아이디어가 어떻게이 업데이트를 빠르게 할 수 있습니까?
예, PL/SQL 코드 – Krystian
의 일부입니까? null 값을 가진 열이 있는데, 모두를 업데이트하면 Update가 0 행을 반환 할 때 종료됩니다. 예를 들어 작은 테이블에서 나를 처리했습니다. 1-2 mln 레코드를 사용하고 시간이 많이 걸리지는 않았지만 최신 db 버전도 있습니다. – Krystian