학원수업_Oracle

201103

logloglog 2020. 11. 3. 19:07
SELECT MAX (LPROD_ID) FROM LPROD;

1. 시퀀스객체만들어야함

CREATE SEQUENCE SEQ_LPROD
START WITH 11;

2. 자료삽입

INSERT INTO LPROD
SELECT SEQ_LPROD.NEXTVAL, 'P502','농산물' FROM DUAL;

유일하게 서브쿼리쓸때 괄호가 생략되는것은 INSERT문에서...

이런식으로 추가가된다

3. SYNONYM

- 동의어

- 오라클 객체에 부여하는 별칭

- 다른소유자의 오라클 객체에 접근하기 위해서 '스키마명.객체명'으로 접근해야 함

*사용형식

CREATE [OR REPLACE] SYNONYM 시노늄이름
FOR 객체명;

 

EX

DEPARTMENTS 테이블을 DEPT라는 이름을 부여하여 사용하시오

CREATE SYNONYM DEPT
FOR DEPARTMENTS;

 

SELECT * FROM DEPT;

 


CREATE OR REPLACE SYNONYM MYDUAL FOR SYS.DUAL;
SELECT SYSDATE FROM MYDUAL;

 

 

4. INDEX

길을 찾아가는 KEY값과 주소로 이루어진 별도의 기억공간

- 검색 효율을 재고시키기 위한 객체

- 검색된 자료를 정렬(order by) 하거나 그룹핑(group by)할때 인덱스를 활용하면 실행 효율을 높일 수 있음

-DBMS의 LOAD를 줄여 성능 개선을 할 수있음

- 시간과 저장공간이 추가적으로 소요

-빈번한 삽입, 삭제, 수정이 발생하는 경우 인덱스 유지에 많은 시간이 소요

 

**인덱스가 필요한 컬럼

- 자주 검색에 사용되는 컬럼
- WHERE 절의 조건에서 '-'연산자를 사용하여 특정 값을 찾을 때 사용된 컬럼
- PRIMARY KEY로 설정되어진 컬럼 < 자동인덱스
- FOREIGN KEY : 거의 90퍼센트는 조인이 발생된다
- 정렬에 자주 사용되는 컬럼

 

 

** 인덱스가 불필요한 컬럼

- 자주 검색에 사용되지 않는 컬럼
- 컬럼 도메인이 단순한 컬럼 (중복값이 많이 발생)
- WHERE절에 사용된 조건이 결과가 테이블 거의 모든 자료일때
-SELECT문보다 INSERT, UPDATE등의 속도가 더 중요한 경우

 

**인덱스의 구분

(1) UNIQUE/NON-UNIQUE

-UNIQUE는 중복을 허락하지 않는 INDEX

-NON-UNIQUE는 중복 허용

-NULL값은 허용되나 한번만 사용(단, PRIMARY는 허용안됨)

 

(2) 구성방법에 의한 구분

- NORMAL INDEX(B-TREE INDEX)

  •   기본 인덱스 구성 방식
  •   트리구조로 컬럼값과 ROWID를 기반으로 주소 산출

 

- BITMAP INDEX

  •   컬럼 도메인의 차수(Cardinallity)가 적은 경우 (성별,결혼여부,나이 등) 효율적
  •   추가, 삭제, 변경이 많은 경우 비효율적
  •   컬럼값과 ROWID를 2진으로 조합하여 주소 산출

 

-FUNCTION BASED INDEX

  •  조건절에 함수를 사용하는 경우 효율적

 

 

 

 

 

 

 

 

'학원수업_Oracle' 카테고리의 다른 글

PL/SQL  (0) 2020.11.04
201104  (0) 2020.11.04
201103 VIEW  (0) 2020.11.03
201103  (0) 2020.11.03
201102  (0) 2020.11.02