본문 바로가기
728x90

Dev/Oracle39

[Oracle] 계층구조 쿼리 계층구조 계층형 구조란 상하 수직관계의 트리형태의 구조로 이루어진 형태를 말한다. 계층형 쿼리는 테이블에 저장된 데이터를 계층형 구조로 반환하는 쿼리를 말한다. 수행 순서 START WITH CONNECT BY WHERE CONNECT BY : PRIOR 연산자와 함께 사용하여 계층 구조로 표현할 수 있다. CONNECTED BY PRIOR 자식컬럼 = 부모컬럼 부모에서 자식으로 트리 구성 (TOP DOWN) CONNECTED BY PRIOR 부모컬럼 = 자식컬럼 자식에서 부모로 트리 구성 (BOTTOM UP) SELECT DEPT_NAME, DEP_CD, PARENT_CD, LEVEL FROM COMPANY START WITH PARENT_CD IS NULL CONNECT BY PRIOR DEP_CD .. 2022. 6. 14.
[Oracle] 스칼라 서브쿼리, 인라인뷰, 서브쿼리 서브쿼리란 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 말한다. SELECT (SELECT ... ) --> 스칼라 서브쿼리 FROM (SELECT ... ) --> 인라인 뷰 WHERE ... 스칼라 서브쿼리 : Select절에 있는 Subquery -- 특징 하나의 행(row)만 반환한다. 일치하는 값이 없으면 NULL을 반환한다. 부서별 최대 급여정보를 조회하는 쿼리 부서번호 40에 해당하는 직원이 없어 최대 급여가 조회되지 않는다. 부서번호 40의 최대 급여를 제외한 나머지 정보를 확인할 수 있다. 2. 인라인뷰 : From절에 있는 Subquery 부서번호 20의 평균 급여보다 급여를 많이 받고, PRESIDENT가 아닌 MANAGER를 조회하는 쿼리 * 인라인뷰는 왜 사용할까? 1... 2022. 6. 13.
[Oracle] WINDOW FUNCTION 윈도우 함수 WINDOW FUNCTION -- 윈도우 함수에는 OVER 문구가 필수 포함된다. SELECT * FROM SCOTT.EMP; SELECT * FROM SCOTT.DEPT; 그룹 내 순위 함수 1. RANK – 순위 구하기 SELECT JOB, ENAME, SAL, RANK() OVER (ORDER BY SAL DESC) ALL_RANK, RANK() OVER (PARTITION BY JOB ORDER BY SAL DESC) JOB_RANK FROM EMP; SELECT JOB, ENAME, SAL, RANK() OVER (ORDER BY SAL DESC) ALL_RANK FROM EMP; SELECT JOB, ENAME, SAL, RANK() OVER (PARTITION BY JOB ORDER BY S.. 2022. 6. 12.
[Oracle] Oracle Lock Test TX Lock Test (DML) 여러 세션이 동일 로우를 변경하는 경우(mode=6) 여러 세션이 Unique Key 충돌을 일으키는 경우(mode=4) 여러 세션이 비트맵 인덱스(Bitmap Index) 충돌을 일으키는 경우(mode=4) COMMANDS -- 현재 세션의 SESSION ID 확인 SELECT SID FROM V$SESSION WHERE USERNAME=USER; -- LOCK 걸린 SESSION 확인 SELECT D.OBJECT_NAME, L.SESSION_ID, S.SERIAL#, S.MACHINE, S.PROGRAM, S.LOGON_TIME FROM DBA_OBJECTS D, V$LOCKED_OBJECT L, V$SESSION S WHERE L.SESSION_ID = S.SID .. 2022. 6. 10.
[Oracle] HWM (High Water Mark) HWM HWM는 저장공간을 갖는 세그먼트 영역에서 사용한 적이 있는 Block과 사용한 적이 없는 Block 의 경계점이다. 사용된 적이 있는 Block까지의 표시점이라고 할 수 있다. 테이블에 데이터가 추가(Insert)될 때 세그먼트에는 할당된 블록의 집합인 익스텐트에 데이터를 적재하도록 오라클 데이터 블록 포맷을 수행한다. HWM은 이 포맷된 위치를 표시하는 역할을 한다. HWM의 특징은 다음과 같다. EXTENT 확장의 기준이며, 모든 세그먼트에 하나씩 존재 전체 테이블을 스캔(FULL SCAN)할 때 테이블의 첫 블록에서부터 HWM까지 스캔 HWM 아래로 FREE BLOCK이 많을 경우 효율은 저하 HWM 이전에 위치한 블록까지만 저장 가능 HWM은 테이블 익스텐트의 뒤로만 이동 가능(HWM B.. 2022. 6. 9.
[Oracle] PCTFREE, PCTUSED PCTFREE UPDATE할 때 늘어나는 데이터를 수용하기 위한 공간. 기존에 존재하던 ROW를 UPDATE하며 ROW DATA의 길이가 늘어날 것에 대비하기 위한 여유공간. PCTFREE 값이 적을 경우 한 데이터 블록에 많은 ROW DATA를 입력할 수 있다. UPDATE 작업량이 적은 세그먼트에 적합하다 너무 낮을 경우 헤더 데이터가 저장될 공간이 줄어들고, ROW MIGRATION 현상이 생길 수 있다. PCTFREE 값이 클 경우 한 데이터 블록에 적은 ROW DATA를 입력할 수 있다. (PCTFREE 값이 적을 경우와 비교해서, 같은 양의 ROW DATA를 입력하기 위해 더 많은 데이터 블록을 사용해야 한다.) UPDATE 작업이 많은 세그먼트에 적합하다. 실제 데이터가 저장될 영역이 줄어들.. 2022. 6. 9.
728x90