我正在尝试运行更新查询,但仍然需要很长时间我在其中进行了提交。将提交设置为更高的值 (5000) 还是更低的 (1) 更好?我要更新2100万表中的1500万条记录
编辑这里是我的更新查询,但我需要知道我应该设置提交的低/高
DECLARE
CURSOR c_itemloc
IS
SELECT item, loc
FROM dc_item_loc;
l_item item_loc.item%TYPE;
l_loc item_loc.loc%TYPE;
i NUMBER;
l_commit VARCHAR2(1) := 'Y';
BEGIN
i:=0;
FOR r_itemloc IN c_itemloc
LOOP
i := i+1;
UPDATE item_loc il
SET il.status = 'D',
il.last_update_datetime = get_vdate,
IL.LAST_UPDATE_ID = 'CNVOBJ_RNG'
WHERE item = r_itemloc.item
AND loc = r_itemloc.loc;
IF l_commit = 'Y' AND mod(i, 5000) = 0 THEN
COMMIT;
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('YOU FAIL');
END;
Run Code Online (Sandbox Code Playgroud)