본문 바로가기

DataBase/Oracle

오라클에서 디비링크걸기 1. tnsnames에 원격DB 설정이 되어있는 경우 create database link "ABCM_HBM" connect to ODS_DEV identified by "" using 'NEWGERY'; 2. tnsnames에 원격DB 설정이 되어있지 않은 경우 create public database link "ABCM_HBM" connect to ods_dev identified by ods_dev using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.6.100)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = EDW)))'; 더보기
오라클 로또 추출 쿼리 SELECT MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 1, num)) no1, MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 2, num)) no2, MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 3, num)) no3, MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 4, num)) no4, MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 5, num)) no5, MIN(DECODE(MOD(ROWNUM - 1, 6) + 1, 6, num)) no6 FROM ( SELECT grp, num FROM ( SELECT grp, num, MOD(ROWNUM - 1, 45) + 1 rnum FROM ( SELECT CEIL(LEV.. 더보기
[펌]오라클 시간 연산 --하루 전 SELECT SYSDATE - 1 FROM DUAL ( DATE 에다 그냥 정수 1,2 등을 +- 해주면 日단위로 계산하나보다 ) --한 시간 전 SELECT SYSDATE - 1/24*1 FROM DUAL ( 그냥 정수가 日이니까 이걸 24로 나누면 시간으로 알아먹히나보다 ) 써먹어본 거 테이블은 요따구로 만들어졌다고 치고... create table EEVENT( SEQ NUMBER(8) primary key -- 뭐.. 키 , BEGIN_TIME DATE -- 시작시간 , FINISH_TIME DATE -- 마감시간 , REGIDATE DATE -- 등록일자 ) 여따 등록하면 시작시간은 등록일자 한시간 후, 마감시간은 등록일자 이틀 후 라는 업무라고 친다면... INSERT INTO E.. 더보기
[펌]오라클에서 파티션 테이블 사용 DROP TABLE tablename; /* 테이블을 만들때 파티션을 사용할 수 있도록 생성해야만 한다. */ CREATE TABLE tablename ( siteid NUMBER NOT NULL, srcid NUMBER, catid NUMBER NOT NULL, contid VARCHAR2(32) NOT NULL, title VARCHAR2(2000), username VARCHAR2(20) NOT NULL, email VARCHAR2(30) NOT NULL, indate VARCHAR2(14) ) PARTITION BY RANGE(SITEID) /* 파티션은 range, list, hash 셋중 하나 선택 */ SUBPARTITION BY LIST(CATID) /* 서브파티션은 list, hash 둘.. 더보기
파티션 테이블 삭제 ALTER TABLE 테이블명(table) DROP PARTITION 파티션테이블명(table_01) 더보기
[펌]오라클 힌트2 /*+ ALL_ROWS */ ALL_ROWS는 Full Table Scan을 선호하며 CBO(Cost Based Optimization)는 default로 ALL_ROWS를 선택 합니다. SQL>SELECT /*+ ALL_ROWS */ ename, hiredate FROM emp WHERE ename like '%%%' Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=HINT: ALL_ROWS (Cost=1 Card=5 Bytes=80) 1 0 TABLE ACCESS (FULL) OF 'EMP' (Cost=1 Card=5 Bytes=80) /*+ CHOOSE */ Hin.. 더보기
[펌]오라클힌트1 오라클 힌트 사용예 오라클 힌트란 ? ⑴ 개요 힌트는 SQL 튜닝의 핵심부분으로 일종의 지시구문이다 SQL에 포함되어 쓰여져 Optimizer의 실행 계획을 원하는 대로 바꿀 수 있게 해준다. 오라클 Optimizer라고 해서 항상의 최선의 실행 계획을 수립할 수는 없으므로 테이블 이나 인덱스의 잘못된 실행 계획을 개발자가 직접 바꿀 수 있도록 도와주는 것이다. 사용자는 특정 SQL 문장에서 어떤 인덱스가 선택도가 높은지에 대해 알고 있는데 이 경우 오라클 서버의 Optimizer에 의존하여 나온 실행 계획보다 훨신 효율적인 실행계획을 사용자가 구사할 수 있다. ⑵ 사용법 힌트를 사용하여 아래와 같은 것들을 할 수 있다. 액세스 경로, 조인순서, 병렬 및 직렬처리 ,Optimizer의 목표(Goal)를 .. 더보기
[펌]오라클 힌트 /*+ ALL_ROWS */ 가장 좋은 단위 처리량의 목표로 문 블록을 최적화하기 위해 cost-based 접근 방법을 선택합니다. (즉, 전체적인 최소의 자원 소비) /*+ CHOOSE */ 최적자(optimizer)가 그 문에 의해 접근된 테이블을 위해 통계의 존재에 근거를 두는 SQL 문을 위해 rule-based 접근 방법과 cot-based 접근 방법 사이에 선택하게 합니다. /*+ FIRST_ROWS */ 가장 좋은 응답 시간의 목표로 문 블록을 최적화하기 위해 cost-based 접근 방법을 선택합니다. (첫번째 행을 되돌려 주는 최소의 자원 사용) /*+ RULE */ explicitly chooses rule-based optimization for a statement block 문 블.. 더보기
[펌]오라클 분석 함수 6. Analytic 함수 6-1) AVG* 함수 6-2) CORR* CORR* 함수 6-3) COUNT* 함수 6-4) COVAR_SAMP 함수 6-5) CUME_DIST 함수 6-6) DENSE_RANK 함수 6-7) FIRST 함수 6-8) FIRST_VALUE 함수 6-9) LAG 함수 6-10) LAST_VALUE 함수 6-11) LEAD 함수 6-12) NTILE 함수 6-13) RATIO_TO_REPORT 함수 6-14) ROW_NUMBER 함수 6-1) AVG* 함수 -------------------------------------------------------------------------------- 조건을 만족하는 행(row)의 평균을 값을 반환하며, aggregate 함수나 a.. 더보기
[펌]오라클 그룹 함수 5.그룹함수 Aggregate 함수 5-1) AVG* 함수 5-2) CORR* CORR* 함수 5-3) COUNT* 함수 5-4) COVAR_POP 함수 5-5) COVAR_SAMP 함수 5-6) CUME_DIST 함수 5-7) DENSE_RANK 함수 5-8) FIRST 함수 5-9) GROUP_ID 함수 5-10) Grouping 함수 5-11) GROUPING_ID 함수 5-12) LAST 함수 5-13) MAX 함수 5-14) MIN 함수 5-15) PERCENTILE_CONT 함수 5-16) PERCENTILE_DISC 함수 5-17) PERCENT_RANK 함수 5-18) RANK 함수 5-19) REGR_(linear regression) function* 함수 5-20) STDDEV 함수 .. 더보기