본문 바로가기

개발/데이터베이스5

[Oracle] 시퀀스 캐시 문제 상황 시퀀스 no 갑자기 100씩 뛰어넘음 시퀀스 캐시를 100으로 설정 Shared Pool에 가지고 있던 시퀀스 캐시 100개가 Shared Pool age out(shared pool 용량 초과, max_age 시간 초과 등 DB전략에 의함)에 의해 사라져 버리고 새로 발급받았기 때문 2022. 12. 27.
[Oracle] 계층형 쿼리 계층형 쿼리란? 상하 수직 관계의 구조(트리 형태)로 이루어진 구조. 이 구조를 만드는 쿼리가 계층형 쿼리이다. (ex: 부서 밑에 하위 부서) 계층형 쿼리 구조 SELECT [컬럼]... FROM [테이블] WHERE [조건] START WITH [최상위 조건] CONNECT BY [NOCYCLE][PRIOR 계층형 구조 조건]; 사용 예시 CREATE TABLE DEP ( DEP_CD NUMBER NOT NULL, -- 부서코드 PARENT_CD NUMBER, -- 상위부서 코드 DEPT_NAME VARCHAR2(100) NOT NULL, -- 부서이름 PRIMARY KEY (DEP_CD) ); SELECT DEPT_NAME, DEP_CD, PARENT_CD, LEVEL FROM DEP START W.. 2022. 12. 27.
[Oracle] Connection Pool Error 매번 사용자가 DB요청을 할 때마다 드라이버를 로드하고 커넥션 객체를 생성하여 연결하고 종료하면 매우 비효율적이다. 따라서 Connection Pool을 사용하는데, 일정 시간이 지나면 Connection Pool을 초기화 한다. (Was에서 설정한 TimeOut시간과, DB에 TimeOut시간 별개로) 이때 Connection을 날렸으나 사라진 connection Pool을 날린다면 에러가 날 수 있다. (로직에 따라 Stream is closed 에러도 날 수 있음) 2022. 12. 27.
[Oracle] mybatis sequence 값 return 받기 selectKey 활용 SELECT SEQ_SPO_TMPL_KEY.NEXTVAL FROM DUAL INSERT INTO SPO_FTE_TMPL VALUES (#{templateKey}, #{sponsorKey}, #{templateName}, #{description}, #{reason}, 'N', SYSDATE, #{userKey}) parmeterType을 지정해 주지 않으면 계속 1 반환 parmeterType의 keyProperty 변수에 값 받는다. 2022. 12. 27.