
리눅스에서 프로세스 할당량 및 관련 정보들을 확인할때 사용하는 명령어다. 자주 쓰기때문에 기록용으로 적어놈. ps -eo user,pid,ppid,lstart,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss | head -n 11 -eo : 프로세스 정보 출력할 형식을 지정하는 옵션 user : 프로세스사용자이름 pid : 프로세스 id ppid : 부모프로세스 lstart : 프로세스 시작시간 rss: 메모리에서 사용중인 용량 size : 메모리 크기 (kb 단위) vsize : 가상 메모리 크기 (kb 단위) pmem : 메모리 사용량 백분률 pcpu: cpu 사용량의 백분률 time : cpu 시간 cmd : 실행된 명령어 또는 프로세스 이름 --sort - 기준:..

SprinbBatch 프로그램을 구현하면서 성능 속도를 고려하지 않을 수 없었다. 초기에 cursorItemReader가 성능이 좋다고해서 커서로 구현할까 고민했었지만, 구글링과 여러 블로그 글들을 종합해 본결과 대용량 데이터 처리에는 적합하지 않음을 알게 되었다. 그로인해 아래의 여러가지 방법으로 속도를 개선처리하고자 했다. 로컬에서 프로그램을 수행하므로, dev나 운영환경에 비해서는 시간이 소요될 수 밖에 없다. 시간 감소 폭만 확인 하는 용도로만 참고하면 된다. MyBatisPagingItemReader 개선 수행 row_num을 이용해 no-offset으로 코드 재 구현 select * from( select @rownum:=@rownum+1 row_num , from table_nm where ..

SpringBatchJob -> 여러개의 Step (① Tasklet ②Chunck) 로 구성되어 있음. job Job Instance : job 수행시 인스턴스 객체의 단위 (성공적으로 종료된 동일한 인스턴스 수행시, 중복 수행을 막기 위해 exception이 발생된다. ) ① step (Tasklet )StepExecution : Job 인스턴스 수행시 , 세부 로직 수행 내역으로 read, write ,count 의 상세 내역을 확인 할 수 있다. ※ Step 수행 단위 : tasklet .next()를 이용하여 다중 step을 구성할 수 도 있고 , step flow를 통해 다중 step을 구현 할 수 있다. 다만 step flow를 통해 다중 step을 구현 할 경우에, taskl..
현상 Live 운영 테이블에 데이터가 존재하지 않고, 백업용 데이터로 만들어진 테이블에서 데이터를 산출해야하는 경우가 존재했다. 문제점 Live 테이블 데이터의 경우, 기본적으로 index나 partition이 되어있어 대량의 데이터를 산출할때 해당 조건들을 이용해서 산출을 진행했다. 하지만, 백업용 데이터이기때문에 별도로 구성된 index나 partition이 되어있지 않아 index힌트 이용할 경우 추출 시간이 오래 걸려 active session이 오래 살아 있어 문제가 될 가능성이 존재한다. USE_HASH 사용 USE_HASH 힌트를 사용해 산출 시간을 단축시켰다. USE_HASH 힌트는 Oracle에서 사용되는 옵티마이저 힌트 중 하나로, 해시조인을 강제로 사용하도록 지시하는 역할을 한다. 해..