목록oracle (56)
정미나닷컴
처음에 보고 매우 헷갈렸다. 근데 몇번 실행해보니 감이 잡히더라. 역시 백문이 불여일견이다. 우선 이름도 생소한 Partition Outer Join이 어떨 때 쓰이는지를 알아보자. 날짜별, 매체별 주문 테이블이 있다. 그리고 매체정보 테이블이 있다. 이 두 테이블을 JOIN하여 아래와 같은 결과를 도출하고자 한다. 일단 MEDIA_NM이 빠짐없이 나와야하므로 드라이빙 테이블은 매체정보 테이블이 되겠다. 이 매체정보 테이블을 OUTER JOIN 한다. 뭐랑? 주문 테이블을 ORD_DT 컬럼으로 그룹핑한 애들이랑.. 그러려면 주문 테이블을 ORD_DT 기준으로 PARTITION 해야 하므로 PARTITION BY 구문에는 ORD_DT 컬럼이 들어가게 된다. SELECT TO_CHAR(ORD_DT, 'YYY..
순환(RECURSIVE) 관계 부모와 자식의 관계처럼 계층적 구조의 자료를 하나의 테이블 내에 구조화하여 기술 ex) 카테고리 테이블이나 조직도 테이블 7369 사번 SMITH의 매니저는 7902 사번 FORD → 7902 FORD의 매니저는 7566 사번 JONES → 7566 사번 JONES의 매니저는 7839 KING ▶ 7369
* 테이블 스페이스는 하나 이상의 데이터 파일로 이루어져 있다. -- 테이블 스페이스 확인 SELECT * FROM DBA_TABLESPACES;SELECT * FROM DBA_DATA_FILES; -- 테이블 스페이스 생성 CREATE TABLESPACE [Tablespace Name] DATAFILE '데이터파일 경로\MY_DATA01.dbf' SIZE 30G AUTOEXTEND ON; -- USER에 테이블 스페이스 할당 ALTER USER [User Name] DEFAULT TABLESPACE [Tablespace Name] QUOTA UNLIMITED ON [Tablespace Name] TEMPORARY TABLESPACE TEMP; -- 테이블이 속한 테이블 스페이스 확인 SELECT TAB..
테이블 파티셔닝 - 하나의 테이블을 파티션 키에 따라 물리적으로 별도의 세그먼트에 저장 - 파티셔닝의 이점 * 관리적 측면 : 파티션 단위 백업, 추가, 삭제, 변경 * 성능적 측면 : 파티션 단위 조회 및 DML 수행 - 클러스터, IOT와 마찬가지로 관련 있는 데이터가 흩어지지 않고 물리적으로 인접하도록 저장하는 클러스터링 기술에 속함 - 내부에 몇 개의 세그먼트를 생성하고 그것들이 논리적으로 하나의 오브젝트임을 메타 정보로 딕셔너리에 저장해 두는 것(테이블:세그먼트 = 1:M) 오라클 버전 8 이전에는 파티션 뷰를 통해 파티션 기능을 구현하는 수동 파티셔닝을 이용했는데 실제로 11버전을 사용하고 있는 지금 시스템에서도 이런 형태의 VIEW를 본적이 있다. 테이블명_201901 테이블명_201902 ..
Data Dictionary - 오라클 데이터베이스의 메모리 구조와 파일에 대한 구조 정보 저장 - 각 오브젝트들이 사용하고 있는 공간들의 정보 저장 - 제약 조건 정보 저장 - 사용자 관련 정보 저장 - Role, Privilege 관련 정보 저장 - 감사 및 보안 관련 정보 저장 v$sql - 라이브러리 캐시에 캐싱돼 있는 각 Child 커서에 대한 수행통계를 보여준다. - 쿼리가 수행을 마칠 때마다 갱신(수행시간이 긴 쿼리는 5초마다 갱신) SELECT /* 라이브러리 캐시에 저장된 SQL 커서 자체에 대한 정보 */ SQL_ID, CHILD_NUMBER, SQL_TEXT, SQL_FULLTEXT, PARSING_SCHEMA_NAME /* SQL 커서에 의해 사용되는 메모리 사용량 */ , SHAR..
INSERT ALL - 한 테이블에 여러 row를 넣거나 여러 테이블에 하나의 명령어로 insert가 가능 Unconditional insert all : 조건없이 모두 insert INSERT ALL INTO CUST_TEL VALUES (CUST_NO, TEL_NO) INTO CUST_ADDR VALUES (CUST_NO, POST_NO, ADDR_1, ADDR_2) SELECT CUST_NO, TEL_NO, POST_NO, ADDR_1, ADDR_2 FROM CUSTOMER; Conditional insert all : 조건에 맞는 행들만 insert INSERT ALL WHEN SALE_PRICE >= 1000000 INTO HIGH_ORDER VALUES (ORDER_NO, GOODS_CODE,..
대략 2년 정도의 시간이 걸렸다. 나에겐 워킹맘이라는 패널티(?)가 있으므로 단기간에 집중적으로 공부한다는 건 거의 불가능했다. 하루하루 조금씩 묵묵히.. 여건이 될 때엔 사비로 주말 교육을 받기도 했고 (1년에 한 번씩 5주 교육 받음)가끔 회사에서 지원해주는 평일 야간 교육도 받았다.그리고 평소엔 아이를 재우고 남은 시간에 책을 보거나 튜닝 연습을 했다.물론 매일 하진 못했다.(작년엔 건강상의 이유로 3개월 정도 아예 공부를 놓았던 적도 있다.) 지치고 피곤할 때도 많았지만 나의 의지로 시작한 일이었기에 딱히 응원해주는 사람이 없어도 그래서 외롭고 불안해도 나는 기꺼이 힘을 내야했다.한 번 칼을 뽑았으면 썩은 무라도 잘라야지.. 암.. 합격 전까지 세 번의 시험을 보았고 세 번을 떨어졌다. 하지만 그..
* Cluster : (함께 자라거나 나타나는) 무리, (조밀하게 모여 있는 사람동물 등의) 무리 그럼 Index Cluster Table은 인덱스 별로 모여있는 테이블(?) 정도로 이해하면 되려나.. 일단 클러스터는 DB Object 개념의 하나이다. 일반적으로 우리가 알고 있는 구조가 [테이블] ↔ [인덱스] 분리형이고 IOT가 [테이블=인덱스] 일체형이라고 한다면 인덱스 클러스터 테이블은 이 둘의 중간쯤이라고 생각하면 되겠다. 백문이 불여일견이므로 일단 직접 만들어보면서 이 놈이 어떻게 생겨먹은 놈인지 알아보도록 하자. ① 데이터를 저장할 클러스터를 생성한다.CREATE CLUSTER C_DEPTNO (DEPTNO NUMBER(2)) INDEX;: 클러스터의 이름을 C_DEPTNO로 정하고 인덱스로..