본문 바로가기

oracle

ORACLE FILTER OPERATION v1.0 *개인적으로 만들다 만 문서같아 마음이 안좋다 -_-; NULL 이란게 여러모로 위험하다. 다음에는 이와 관련해서 지식을 정리할 필요가 생겼다 * ORACLE FILTER OPERATION from http://download-west.oracle.com/docs/cd/B12037_01/server.101/b10759/functions068.htm | LNNVL 1. ORACLE FILTER OPERATION FILTER OPERATION 은 NOT IN,NOT EXISTS 를 사용하는 경우 발견할 수 있는 OPERATION 이다. 사실 위의 부정형 연산을 사용하면 FILTER 말고도 ANTI JOIN 으로 풀릴 수 있지만 여기서는 따로 언급하지 않겠다. NOT IN 을 사용하는 경우 FILTER OPE.. 더보기
ORACLE TRACE SCRIPT ORACLE TRACE SCRIPT v1.0 from 1. ORACLE TRACE 전번에서 SQL TRACE 의 한 방법으로 쉘스크립트를 만든적이 있지만 지금돌이켜보면 상당히 복잡하고 조악했다. ;; 전번의 트레이싱 방법이 스크립트를 파일로 만들어 놓고 이를 입력으로 쉘을 실행하면 TKPROF 결과가 바로 오픈 되는 방법이었다. 이런 프로세스 자체를 보면 그리 복잡해보이진 않지만 UNIX 파일 시스템 내부에 TEMP 파일을 흩뿌려놓는 단점이 있었다. 이번의 방법은 전보다 (어디까지나 상대적으로…) 단순하다. 2. SCRIPT 내용 실명은 감추도록 하겠다. ㅎㅎㅎ 스크립트 파일은 첨부하니 COPY&PASTE 해서 저장하는 삽질은 하지 마시길… --Script for Tracing SQL Query --Ma.. 더보기
ORACLE DATA GUARD 10g INSTALLATION v1.0 ORACLE DATA GUARD 10g INSTALLATION (SINGLE HOST) From *주의 사항… 이대로 진행하면 생성에 실패할 확률이 매우 높음 ;;* *특히 log_archive_dest_n 에 대해서는 추후 따로 이야기할 예정이니 참고 1. DATA GUARD (10g) INSTALLATION 환경정보 -SINGLE HOST, PHYSICAL STANDBY, USING SQL(수동구성) 테스트용으로 같은 PC 에 구축하며 SQL 을 이용해 수동으로 구축한다. 여기서 구축하는 STANDBY 는 PHYSICAL STANDBY 이다. PRIMARY DB 의 정보는 다음과 같다. NO ARCHIVE LOG NO FLASHBACK SID : ORCL 2. INSTALLATION OUTLINE 시.. 더보기
ORACLE FUNCTION USING DUAL v1.0 ORACLE FUNCTION USING DUAL from 1. ORACLE FUNCTION USING DUAL Trace 를 보면 cr 값이 이상한 곳에서 튀는 경우가 있다. 이를테면 sort 한 결과에서 row 값은 그대로인데 cr 이 튀는 경우가 그러하다. 이런경우 생각할 수 있는 경우로 결과 row 에 대해 스칼라 서브쿼리나 select-list 에 use function 을 사용한 경우가 있다. /*+ system function 을 사용하는 경우도 cr 이 바뀔 수 있나? */ 이 cr 값을 줄이기 위한 방법중 하나가 dual 을 사용하는 방법으로 f(x) 를 select f(x) from dual 로 바꾼다. 이러한 방법으로 동일한 입력에 대해 결과값을 다시 사용하면서 cr을 줄일 수 있다. .. 더보기
ORACLE ROLLUP ORACLE ROLLUP v1.0 from 1. ORACLE ROLLUP GROUP BY 는 특정 값에대한 집계값을 얻고자 할 때 사용한다. 때로는 이 값에 TOTAL 값이 필요할 때가 있다. 이럴 때 ROLLUP 을 사용하면 편하게 값을 얻을 수 있다. 2. ROLLUP 예제 select to_char(count(first_name)) num,department_name from emp,dept where emp.department_id = dept.department_id group by department_name union all select to_char(sum(num)), 'TOTAL' from (select count(first_name) num,department_name from emp,.. 더보기
ORACLE OUTER JOIN v1.0 ORACLE OUTER JOIN from 1. ORACLE OUTER JOIN OUTER JOIN 은 JOIN 연결고리 조건을 만족하지 못하는 ROW 에 대해서도 전부 표현하기 위한 JOIN 의 또다른 방법이다. 흔히 사용되는 간단한 예를 이야기 하면 EMPLOYEE 와 DEPARTMENTS 가 있을 때 아직 부서에 발령되지 않은 신입이 있다고 가정하자. 하지만 모든 EMPLOYEE 의 소속부서에 대해 (값의 유무를 떠나) 조회하고 싶을 때 OUTER JOIN 을 사용한다. OUTER JOIN 의 특징으로는 JOIN 의 방향이 고정된다. 조인의 방향이란 DRIVING 되는 테이블을 의미하며 다시말해 조인을 위해 무엇을 먼저 엑세스하느냐란 물음에 항상 고정된 답변을 하게 된다란 이야기이다. 앞서 사용한 E.. 더보기
ORACLE 10g CREATE DATABASE ~ LISTENER CONFIGURATION 항상 보던 템플릿이 아닌걸? 하고 의아해 하는 분을 위한 사족이지만 작업환경이 PC방이기 때문이다... 개인 공부차원으로 전체적으로 살펴본 것이고 9i 문서를 작성했을 때로부터 상당한 시간이 흘렀음에 전율하고 있다! 10g에 설치에 대해 만들어는 보았지만 별로 새로울 건 없고 95% 정도 동일한 내용이 아닐까 싶다 9i 문서 보고 싶으신 분들은 db 수동 생성 이라 검색하길 바란다. 수동 DB 생성 (10g) *사전에 profile 파일에 database engine 에 대한 setting 이 완료되어 있다고 가정하고 진행하겠다.* ocp@orcl : /home/oracle> sqlplus "/as sysdba" SQL*Plus: Release 10.2.0.1.0 - Production on Sat No.. 더보기
ORACLE 11g NF RESULT CACHE v1.0 ORACLE 11g NF RESULT CACHE from 1. RESULT CACHE RESULT CACHE 란 말그대로 결과를 캐싱한다는 의미이다. 물론 RESULT 를 그대로 가져다 사용하기 위해서는 제약사항이 따른다. 2. RESULT CACHE 의 종류 - SERVER-SIDE - CLIENT-SIDE - SERVER-SIDE SERVER-SIDE 의 경우 SQL 이든 PL/SQL 이든 동일한 메커니즘을 사용한다. SERVER-SIDE / CLIENT-SIDE 의 차이는 결과가 저장되는 위치의 차이이다. CLIENT-SIDE 의 경우 CLIENT 의 메모리 공간에 결과를 저장해 사용하는데 이로인해 클라이언트-서버 간의 라운드트립을 줄일 수 있다. 다만 서버측 정보와 정기적으로 동기화 하는 과정이 .. 더보기
ORACLE SUBQUERY FACTORING v1.0 ORACLE SUBQUERY FACTORING from 실행 계획으로 배우는 고성능 데이터베이스 튜닝 | 비팬북스 | 권순용 1. ORACLE SUBQUERY FACTORING 이름은 SUBQUERY 이지만 INLINE VIEW 와 유사하다. 추가로 뷰머징이 불가능한 INLINE VIEW 와 유사하다. SUBQUERY FACTORING 은 별도의 공간에 임시테이블을 생성한다. (이 기능은 9i 부터 사용가능하다.) 임시테이블은 SQL 종료까지 메모리에 존재한다. 수행되는 방법에는 두가지가 있다. -서브쿼리 팩토링이 독립적으로 수행됨 => 임시테이블을 생성 -서브쿼리 팩토링이 메인 쿼리에 삽입되어 수행 => 쿼리길이를 단축한 효과 (단순히 SHELL 의 ALIAS 와 비슷하다 생각해도 될 듯) SQL> g.. 더보기
091026 ORACLE SMALL TALK SQL> get a 1 select /*+ ordered */ e.ename,d.dname 2 from 3 emp e, 4 (select sum(e.sal) sal,e.deptno,d.dname 5 from emp e,dept d 6 where e.deptno = d.deptno 7 group by e.deptno,d.dname) d 8* where e.deptno = d.deptno Rows Row Source Operation ------- --------------------------------------------------- 14 HASH GROUP BY (cr=76 pr=0 pw=0 time=24752 us) 70 NESTED LOOPS (cr=76 pr=0 pw=0 time=18272 us.. 더보기