본문 바로가기

Language/Oracle

(3)
[Oracle] Index 1.Index란- 테이블 전체를 탐색하지 않고, 테이블 내 원하는 데이터에 빠르게 접근할 수 있도록 만들어진 객체- 쌍으로 구성되는 데이터구조- B트리, B+트리, 해시테이블등의 구조로 구성 2. 장/단점1) 장점 - 검색 속도를 향상시켜 전체적인 시스템 부하 감소- 대용량 데이터 처리에 유리 2) 단점- Index 테이블을 별도로 생성해 관리하므로 인덱스 관리를 위한 공간 소모- DML수행시 정렬상태를 유지하기 위한 연산을 추가로 진행해야 하므로 오히려 성능이 저하됨 > INSERT : 새로운 데이터에 대한 인덱스 추가 > DELETE : 삭제하는 데이터를 사용하지않는 상태로 변경 > UPDATE : 기존 인덱스는 사용하지않음 상태로 변경하고, 갱신된 데이터에 대해 인덱스 추가 *이러한 장단점을 고려해..
[Oracle] SQL 쿼리 수행 순서 쿼리의 수행순서를 인지하지 않고도 원하는 결과를 위해 쿼리를 작성하는 것은 얼마든지 가능하다.하지만 수행순서를 인지하고 쿼리를 작성한다면 쿼리의 성능을 향상하는 것은 물론 실행순서에 따라 영향을 끼치는 문법상의 오류도 방지할 수 있다. [수행순서]1. FROM- 조회할 테이블 지정+) JOIN- 조인을 하여 하나의 가상 테이블로 결합 2. WHERE- 조건에 맞는 데이터 필터링+) GROUP BY - 필터링한 데이터 기준으로 그룹화 +) HAVING- 그룹화한 데이터에 조건에 맞게 필터링 3. SELECT- 출력할 데이터 선택 4. ORDER BY- 출력할 데이터 정렬 5. LIMIT- 출력할 행의 수 지정 [수행순서에 따라 주의해야 할 문법]1. ALIAS 사용1) ORDER BY절select conc..
[Orcale] 페이징 ROWNUM, OFFSET 페이징 기법을 통해 데이터를 나누어 표현하기 위해 oracle에서는 ROWNUM, OFFSET을 사용할 수 있다.1. ROWNUM- Oracle 12C 이전에 사용하던 페이징 기법- 쿼리를 view로 감싸 사용해야하기때문에 복잡하다.SELECT *FROM ( SELECT A.*, ROWNUM RNUM FROM (  SELECT *  FROM table1 )A WHERE ROWNUM = 90;2. OFFSET FETCH- Oracle 12c 이후 행제한을 사용해 간결하게 페이징 가능*옵션[OFFSET offset ROWS] FETCH NEXT [row_count | percent PERCENT] ROWS [ONLY | WITH TIES]- OFFSET : 시작 행 정의 (생략시 0)- FETCH : 반환할..