본문 바로가기
반응형

ORACLE22

튜닝수업 (20161127) ROLLUP() 테이블 액세스는 최대한 줄이도록 EX)select NVL( TO_CHAR(deptno), 'total' ), sum(sal) 합계 from emp group by ROLLUP( deptno) ; GROUPING() CEIL() GROUPING SET() ** 분석함수 : 일반함수와 달리 select절, order by 절에서만 사용가능 # 함수이름(파라미터) over( partition by ~ order by rows/range ~) -> 파라미터 : 함수에 따라 0~개까지 파라미터 지정가능 -> partition by : 함수 초기화 -> order by : 분석함수 적용시 정렬 (필수** : rank, dense_rank, row_number, ntile, lead, leg사용시) .. 2016. 12. 27.
튜닝수업 (20161126) SQL> set autot on SQL> select * from scott.emp; 위 조회결과가 실행되면 중간에 실행계획에 대하여 아래처럼 나옴. Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=3 Card=14 Bytes=12 18) 1 0 TABLE ACCESS (FULL) OF 'EMP' (TABLE) (Cost=3 Card=14 Bytes =1218) set autot 옵션에 아래 선택하여 조회결과를 조정이 가능 1-1 on 1-2 trace 2-1 exp 2-2 stat - HINT (Page.138) 옵티마이저에게 처리방법/순서에.. 2016. 12. 26.
여러 Row를 한Row로 사용 예) - oracle 10g이상에서 사용할 수 있음 select card_status from msr_card_master where card_status is not null group by card_status; select WMSYS.WM_CONCAT(CARD_STATUS) AS card_status from ( select card_status from msr_card_master where card_status is not null group by card_status order by card_status ) 참고사이트 : http://snoopy81.tistory.com/351 2015. 11. 11.
DBLINK시 LOB CLOB 컬럼오류 해결 -- DB링크를 만든다.CREATE DATABASE LINK DB링크명 CONNECT TO scott IDENTIFIED BY tiger USING 'DB링크명'; -- 원격테이블의 컬럼에 clob 혹은 long과 같은 데이터 타입이 존재한다. select * from 원격테이블@DB링크명 where rownum = 1 -- 에러가 발생한다. ORA-22992:원격테이블로부터 선택된 LOB위치를 사용할 수 없습니다. -- 따라서 로컬에 원격지의 테이블을 만들고 그대로 만들어 준다. create table temp_원격테이블 as select * from 원격테이블@DB링크명 where 1=2;-- 그리고나서 원격지 테이블을 그대로 insert해온다. insert into temp_원격테이블 select .. 2015. 10. 5.
SQL 튜닝방법론 SQL 튜닝책을 세 권정도 읽은 신입사원이 SQL 튜닝방법론을 요청하였다. 이유는 튜닝책에 방법론이 없다는 것이다. 튜닝 방법론이란 “SQL을 튜닝 해달라고 요청 받았을 때 내가 무엇 무엇을 해야 하나?” 이다. 즉 SQL 튜닝시의 To-Do 리스트(체크리스트)를 요구한 것이다. SQL 튜닝을 자주 하면서도, 그 안에 몇 가지 작업이 있는지 생각하지 못했다. 누가 그랬던가? 일상을 낯설게 느껴보라고… SQL 튜닝요청을 받았을 때 내가 어떤 일을 하는지 가르쳐 주면 되겠구나 하는 생각이 들었다. 그 결과 7가지 방법이 결론으로 도출되었다. 만약 7가지 방법을 모두 적용할 수 있는 경우임에도 불구하고 하나라도 빠진다면 최적화된 SQL을 만들 수 없다. 아래는 필자와 신입사원의 대화이다. 신입사원 : SQL .. 2015. 9. 16.
Nested Loop 조인 쿼리 튜닝을 지켜보다 보면, Nested Loop라는 걸 종종 보게 된다. ( 오라클에서도 SQLServer에서도 동일한 명칭을 사용한다. ) ​ Nested Loop 의미를 안다면 쿼리 튜닝을 하는데 도움이 될 것이다. 정의 : Nested Loop 조인은 연결고리가 되는 컬럼을 사용하여, 바깥쪽 테이블(driving table)과 안쪽 테이블 2개를 서로 연결한다. ​ 설명 : 2개의 테이블이 있을때 바깥쪽 테이블과 안쪽 테이블이 어떤 컬럼으로 연결고리가 맺어지는 걸 말하는 것이다. ​ 즉 2개의 테이블이 Loop를 돌면서 연결고리가 되는 항목을 추출하는 과정이라고 보면 시운 설명이 될 것 같다. 중첩 for문과같이 for문 안에 for문이 있는 2차원 배열을 생각하면 개념을 이애하기 쉽다. 바깥쪽(.. 2015. 9. 16.
반응형