본문 바로가기
728x90

Dev99

[Oracle] 대기 이벤트 DBMS 내부에서 활동하는 수많은 프로세스 간에서는 상호작용이 필요하며, 그 과정에서 다른 프로세스가 일을 마칠 때까지 기다려야 하는 상황이 발생 그때마다 해당 프로세스는 자신이 일을 계속 진행할 수 있는 조건이 충족될 때까지 수면(Sleep)상태로 대기 구분 이벤트명 설 명 라이브러리 캐시 부하 latch : shared pool 라이브러리 캐시에서 SQL 커서를 찾고 최적화 하는 과정에서 경합이 발생하여 나타난 대기이벤트 latch : library cache 라이브러리 캐시에서 SQL 커서를 찾고 최적화 하는 과정에서 경합이 발생하여 나타난 대기이벤트 library cache lock SGA내의 library cache를 참조하기 위한 대기 library cache pin 수행중인 SQL이 참조하는.. 2022. 6. 15.
[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 / MySQL] NULL 개념, 처리 ORACLE / MYSQL NULL 개념, 처리방법 -- MySQL 에서 NULL CREATE TABLE test_db.t1 (ID INT,C1 VARCHAR(10)); INSERT INTO test_db.t1 VALUES (1,1); INSERT INTO test_db.t1 VALUES (2,'2'); INSERT INTO test_db.t1 VALUES (3,NULL); INSERT INTO test_db.t1 VALUES (4,'4'); INSERT INTO test_db.t1 VALUES (5,''); INSERT INTO test_db.t1 VALUES (6,6); INSERT INTO test_db.t1 VALUES (7,' '); INSERT INTO test_db.t1 VALUES (8,'.. 2022. 6. 11.
[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.
728x90