반응형 개발공부 일지/오라클21 오라클) 윈도우 함수로, 전체 집계 함수 값과 특정 컬럼 집계 함수 값 같이 보기 SELECT 국적 , SUM(월급) OVER(PARTITION BY 국적) , SUM(월급) OVER()FROM 인적정보; 2024. 8. 25. 오라클) Index Fast Full Scan 와 Index Full Scan 의 차이점. 1.Index Fast Full Scan은 항상 인덱스에서만 읽는다. vs Index Full Scan은 테이블에서도 읽는다. 2. Index Fast Full Scan은 여러 블럭을 동시에, Unordered하게 읽는다. vs Index Full Scan은 row를 한 줄 씩 읽는다. 3.Index Fast Full Scan은 sort 작업 생략 불가. vs Index Full Scan은 sort 작업 생략 가능. 2024. 8. 25. 오라클) Oracle에서 IN 조건으로 여러 값을 동시에 만족하는 쿼리 작성법 업무 중에, IN 조건을 모두 만족하는 데이터를 출력할 때가 종종 있습니다. 일반적인 IN 조건은 하나라도 만족하는 값을 추출하지만, 이번에는 IN 조건을 사용할 때, IN 조건을 동시에 모두 만족하는 결과를 얻는 방법을 살펴보겠습니다. 테이블CREATE TABLE my_table ( id NUMBER, value VARCHAR2(10)); 1. GROUP BY와 ROW_NUMBER() 을 사용하여 모든 값 포함 확인하기 SELECT T1.ID FROM ( SELECT id, VALUE, ROW_NUMBER()OVER(PARTITION BY ID ORDER BY ID) RN FROM my_table WHERE value IN ('a', 'b', 'c', 'd').. 2024. 7. 16. 오라클)SID와 SERVICE_NAME 차이 SID는 INSTANCE의 유니크한 이름입니다.SERVICE NAME은 데이터베이스에 원격으로 접속할때 사용되는 TNS alias입니다. SERVICE NAME은 클라이언트의 tnsnames.ora 파일에 기록됩니다. SID와 동일할 수 있으며 원하는 다른 이름을 지정할 수 있습니다. https://www.stechies.com/difference-between-oracle-sids-and-oracle-service-names/ Oracle SIDs vs. Oracle SERVICE NAMESWhat is the differences between Oracle SIDs and Oracle SERVICE NAMES. Oracle SID is the unique name that uniquely identi.. 2023. 10. 26. 오라클) REGEXP_LIKE 1. 정규식 [0-9] : 숫자 [^0-9] : 숫자 외의 것 2. WHERE절에 REGEXP_LIKE를 이용하여 조회 정규식에 해당하는 데이터가 하나라도 포함되면 조회 /* 데이터에 숫자가 하나라도 포함되면 조회 */ WHERE REGEXP_LIKE(컬럼, ‘[0-9]’) /* 데이터에 숫자 아닌 것이 하나라도 포함되면 조회 */ WHERE REGEXP_LIKE(컬럼, ‘[^0-9]’) /* 데이터에 숫자가 하나라도 포함되면 제외(=숫자 없는 데이터) */ WHERE NOT REGEXP_LIKE(컬럼, ‘[0-9]’) /* 데이터에 숫자가 아닌 것이 하나라도 포함되면 제외 */ WHERE NOT REGEXP_LIKE(컬럼, ‘[^0-9]’) 3. SELECT문에서 REGEXP_REPLACE를 이용하여 .. 2023. 10. 17. 오라클)Warning: Procedure creates with compilation errors cmd의 sqlPlus에서 프로시져를 적용할 때, Warning: Procedure creates with compilation errors 위와 같은 에러가 나온다면... show erros를 치면 에러가 발생한 행을 찾을 수 있다. 2023. 10. 12. 오라클)SELECT * FOR UPDATE SELECT * FOR UPDATE는 현재 트랜잭션이 완료될 때까지 다른 트랜잭션에서 해당 행을 수정하지 못하도록 행을 잠그는 목적으로 사용됩니다. 충돌을 피하기 위한 기술입니다. SELECT * FOR UPDATE 문의 작동 방식SELECT: 일반적인 SELECT 문으로 시작하며 지정된 조건을 기반으로 테이블에서 행을 검색합니다. FOR UPDATE: SELECT 문의 끝에 FOR UPDATE 절을 추가합니다. 트랜잭션이 SELECT * FOR UPDATE 문을 실행하면 지정된 조건을 충족하는 행에 잠그게 되고, 현재 트랜잭션이 잠긴 행을 해제할 때까지 다른 트랜잭션이 이러한 행을 수정하지 못하게 합니다.동시성 제어가 필요할 때,좌석이나 티켓 예매시, 동시 접속자가 많아 둘 이상의 사람이 같은 자리를.. 2023. 9. 30. 오라클)Ordered와 Leading 힌트 1.orderedordered 힌트는 FROM 절에서 기술한 테이블 순서대로 조인합니다. 조인 순서에 따라 실행 계획이 달라지는 것을 볼 수 있습니다. SELECT /*+ ordered */ E.DEPTNO , E.EMPNO , D.DNAMEFROM DEPT D , EMP EWHERE D.DEPTNO = E.DEPTNO ; SELECT /*+ ordered */ E.DEPTNO , E.EMPNO , D.DNAMEFROM EMP E , DEPT DWHERE D.DEPTNO = E.DEPTNO ;2. leadingleading 힌트 안에 쓴 테이블 순서대로 조인합니다. leading도 위와 마찬.. 2023. 9. 30. 오라클)Nested Loop Join과 Hash Join과 선행 테이블 NL Join(Nested Loop Join) NL JOIN의 작업 방법은 다음과 같습니다. 1. 선행 테이블에서 주어진 조건을 만족하는 행을 찾음 2. 선행 테이블의 조인 키 값을 가지고 후행 테이블에서 조인 수행 3. 선행 테이블의 조건을 만족하는 모든 행에 대해 1번 작업 반복 수행특징선행테이블은 풀스캔하므로, 선행테이블의 크기가 작을수록 유리합니다 (So. 두 테이블의 크기 차이가 있는 경우, 유리하게 사용될 수 있는 방법임. 선행 테이블을 일단 Full Scan을 하고, 여기서 얻은 JOIN 키로 인덱스를 스캔하고 후행 테이블에 진입함. 선행 테이블이 작아야, JOIN 키 확보 단계에서 많이 필터링이 가능함)후행테이블에 대해서는 반드시 인덱스가 존재해야 NL 조인이 가능합니다.인덱스 구성 전략이.. 2023. 6. 19. 이전 1 2 3 다음 반응형