본문 바로가기
IT/SQL

Object

by 봉즙 2019. 6. 8.

Object

테이블 : 앞부분 참조

시퀀스 : 자동으로 unique number를 생성, 같은 번호는 나오지 않는다. (쓰레드에 의해 GAP이 발생 할 수 있다.)

1
2
3
SELECT sequence_name, min_value, --sequence
max_value, increment_by, last_number
FROM user_sequences

 

1
2
3
4
--Q10. S_EMP 테이블에서 이름은 홍길동, 급여는 2000, 나머지는 null을 입력하되, 사번은 sequence값을 이용하시오
insert into s_emp(id, name, salary)-- 사용 X
values (c_emp_id.nextval, '홍길동'2000);
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

인덱스 : index가 많을 수록 insert 성능이 떨어진다. index가 없는 경우 insert, 있는 경우 tree생성한다. 이 방식으로 입출력의 횟수를 줄인다. unique, PK의 경우 index가 자동생성된다. index가 있어도 프로그램이 판단하여 사용하지 않는 경우도 있다.  논니적 물리적으로 테이블과는 독립적이다. Index는 자동 생성되기도 하며 직접 만들기도한다.

- Uniqe인덱스는 pk, unique의 제약조건에 의해 자동으로 생성되며 index 값이 유일함을 보장한다.

- Non 유니크 인덱스는 사용자에 의해서 생성되며 각 index 값이 유일하지 않는다.

- 인덱스의 구조 : 각 행에 대응하는 주소 (ROWID)와 인덱스 컬럼으로 구성된다. ROWID를 가지고 있다면 테이블의 SCAN을 하지 않고 바로 찾는 것이 가능하다. TREE를 형성하기 때문에 인덱스가 많으면 검색은 빠르지만 변경은 느리다. TREE에 hint를 주는 것도 가능하며, TREE를 만들었다 하더라도 많은 수의 table찾는 경우 full scan이 빠르다.

- 최적화방법은 규칙기준과 비용기준 두가지가 있다.  규칙 기준은 index 사용 등에 대한 규칙을 따르는 것이며, 비용 기준은 비용이 가장 적게 드는 방식으로 경로를 설정한다.

- 인덱스 생성 :  WHERE(조건절) 이나 조인 조건에서 컬럼을 자주 이용할때, 칼럼이 넓은 범위를 가질 경우, 많은 null을 가진 컬럼일때, 데이터가 많고 그 테이블에서 조회되는 행의 수가 전체의 10-15% 정도일  때

- 인덱스 생성하지 말아야 할 경우 : 테이블이 작을때, 칼럼이 조회의 조건으로 사용되는 경우가 별로 없을 떄, 대부분의 조회가 행의 10-15% 이상을 검색할 때, 테이블이 자주 변경될 때 (인덱스는 비용이 많이 들고 변경에 취약하기에 이런경우 지양해야함)

1
2
3
--Q11. s_emp테이블의 이름컬럼에 인덱스를 추가하시오
Create index idx_s_emp on s_emp(name);
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

: SQL문장으로 저장된다. 읽기 전용이며 보안상의 이유 또는 성능상의 이유, 복잡한 SQL문을 사용하는 대신 테이블에 대한 데이터를 뷰를 통해 보는 것이 가능하다.

1
CREATE view vw_s_emp_113 as select *from s_emp where dept_id=113;--뷰생성
1
select * from vw_s_emp_113; --뷰
1
 
select * from user_views;

- 뷰를 정의하는 SQL문에는 ODER BY를 사용할 수 없으며, 복잡한 SELECT문으로 구성 될 수 있다.

- 간단한 뷰(테이블 1개)에서는 DML연산 수행가능하다.(원칙적으로는 불가능 한게 맞다)

- 뷰에서 WITH READ ONLY 옵션을 사용하는 경우 DML 연산이 발생하지 않도록 한다.

시노님 : Object에 부여하는 또다른 이름

1
2
CREATE SYNONYM vw_113 for vw_s_emp_113;
select *from vw_113;--synonym

프로그램유닛 :  사용X

'IT > SQL' 카테고리의 다른 글

테이블 전체 삭제  (0) 2019.07.30
ADVANCED SQL  (0) 2019.06.08
DCL(데이터 제어어)  (0) 2019.06.08
DDL(데이터 정의어)  (0) 2019.06.08
Dictionary  (0) 2019.06.08

댓글