데이터베이스 88

[iBatis] batch 사용방법 및 사용시 유의사항

iBatis 에서 반복적인 대량의 insert/update시 속도 향상을 위해 batch를 사용하여 insert/update를 한다. iBatis에서는 Java에 있는 batch 방법만을 사용할 수 있다. 하지만 수천 수만건의 데이터를 한번에 executeBatch() 해준다면 메모리를 많이 사용하게 되어 메모리 부족현상이 발생되어 에러가 발생한다.(배치에 등록된 대량의 레코드를 한번에 executeBatch 하게되니 Exception 발생) 그래서 1000건 혹은 10000건 단위를 한 묶음으로 배치 처리해주는 것이 효율적이다. public void updateBatchTest() throws Exception { long start = System.currentTimeMillis(); Map para..

[Oracle] REGEXP_REPLACE 다중(여러개) Replace(치환) 하는 방법

출처 : http://gent.tistory.com/82 --치환할 문자를 |로 구분하여 입력 SELECT REGEXP_REPLACE('Stay Hungry, Stay Foolish. - Steve Jobs', 'Stay|Foolish|Steve', '') FROM DUAL --결과: Hungry, . - Jobs ; --문자를 제거만 할꺼면 3번재 파라미터는 생략가능 SELECT REGEXP_REPLACE('Stay Hungry, Stay Foolish. - Steve Jobs', 'Stay|Foolish|Steve') FROM DUAL --결과: Hungry, . - Jobs ; SELECT REGEXP_REPLACE('Stay Hungry, Stay Foolish. - Steve Jobs 2005'..

[Oracle] job 관리 방법(job scheduler)

1. JOB 등록 DBMS_JOB.SUBMIT(JOB_NO, WHAT, NEXT_DATE, INTERVAL); 예) declare job_no number;begin dbms_job.submit(job_no, 'SP_UPDATE_DPT();', sysdate, 'sysdate + 1');end; 참고 : 실행주기 계산 'sysdate + 7' : 일주일에 1회 실행 'sysdate + 1' : 하루에 1회 실행 'next_day(sysdate, ''TUESDAY'')' : 매주 화요일에 실행 'null' : 1회 실행 'sysdate + 1/24' : 1시간에 1회 실행 'sysdate + 1/24/60' : 1분에 1회 실행 'trunc(sysdate+1) + 2/24' : 다음날 2시에 1회 실행'T..

[Oracle] 시퀀스 초기화 방법

시퀀스(Sequence)를 초기화 하는 프로시져다. CREATE OR REPLACE PROCEDURE reset_seq( p_seq_name IN VARCHAR2 ) IS l_val NUMBER; BEGIN EXECUTE immediate 'select ' || p_seq_name || '.nextval from dual' INTO l_val; EXECUTE immediate 'alter sequence ' || p_seq_name || ' increment by -' || l_val || ' minvalue 0'; EXECUTE immediate 'select ' || p_seq_name || '.nextval from dual' INTO l_val; EXECUTE immediate 'alter seq..