본문 바로가기

Oracle

[Oracle] Show Indexes of Table 테이블에 걸려있는 index 조회 SELECT R1.UNIQUENESS, R2.* FROM ALL_INDEXES R1, ALL_IND_COLUMNS R2 AND R2.INDEX_NAME = R1.INDEX_NAME WHERE R1.TABLE_NAME=UPPER('테이블명'); 더보기
[ORACLE] ROW_NUMBER, RANK, DENSE_RANK, 분석용함수 정리 ★ ROW_NUMBER() OVER- 특정 컬럼 기준으로 순위정하기(행번호 부여하기) SELECT T.MAIN_CODE , T.GOODS_SEQ , T.OFFER_MASTER_SEQ , MODEL_CD , (ROW_NUMBER() OVER(PARTITION BY T.MAIN_CODE ORDER BY T.MAIN_CODE, T.GOODS_SEQ, T.OFFER_MASTER_SEQ)) RANK -- , (ROW_NUMBER() OVER(PARTITION BY 중복조회컬럼 ORDER BY 정렬컬럼1, 정렬컬럼2, ...)) FROM TMP_TABLE T 결과 MAIN_CODE GOODS_SEQ OFFER_MASTER_SEQ MODEL_CD RANK ----------------------------------.. 더보기
MYSQL에서 ORACLE SEQUENCE 사용하기 Table SchemeCREATE TABLE sequences ( name varchar(32), currval BIGINT UNSIGNED ) ENGINE=InnoDB; procedure DELIMITER $$CREATE PROCEDURE `drop_sequence` (IN the_name text)MODIFIES SQL DATADETERMINISTICBEGIN DELETE FROM sequences WHERE name=the_name;END; DELIMITER $$CREATE PROCEDURE `create_sequence`(IN the_name text)MODIFIES SQL DATADETERMINISTICBEGIN DELETE FROM sequences WHERE name=the_name; INS.. 더보기
조인 순서 조정을 위한 힌트(ordered, leading) 이 힌트는 다수의 테이블을 조인하는 경우에 조인 순서에 혼선이 있을 때 적용하는 것이 가장 일반적이다. Sort Merge 조인 이나 해쉬조인에서는 적은 테이블을 먼저 처리하도록 유도할 때 사용하는 것이 좋다. ORDERED FROM절에 기술된 테이블 순서대로 조인을 수행하도록 유도한다. 만약 LEADING 힌트와 함께 사용하면 LEADING 힌트는 무시된다. 예) SELECT /*+ ORDERED */ ... FROM TAB1, TAB2, TAB3 WHERE .... ORDERED 힌트는 액세스 순서만 제시할 뿐이고, 조인 방법 과는 무관하기 때문에 조인방법을 유도하기 위한 USE_NL, USE_MERGE등의 힌트와 함께 사용하는 것이 일반적이다 예) SELECT /*+ ORDERED USE_NL(A .. 더보기
정렬과 머지조인 정렬과 머지조인 보통 오라클에서 order by절, group by절, distinct 연산자, connect by 쿼리, b-tree to bitmap conversions 오퍼레이션, 분석함수, 집합연사, 인덱스 생성 등 많은 경우 정렬처리를 필요로한다. 정렬 처리는 아주 일반적인 오퍼레이션이면서 실제 메커니즘과 자원요구량이 잘 알려지지 않았다. 정렬처리 모드(work_area_execution) 정렬처리도 해시 조인과 같이 효율성 기준으로 optimal. onepass, multipass과 같이 3가지로 구분한다 optimal정렬은 순전히 메모리에서만 수행된다. 정렬을 시작할때 데이터 읽기를 진행하면서 점차적으로 메모리가 할당되며, 정렬시작 시 sort_area_size로 설정된 크기(또는 pga_.. 더보기
[오라클]데이터베이스 사용자 계정 생성 테이블 스페이스 생성 CREATE tablespace TS_USER1 DATAFILE '/oracle/oradata/test/TS_TESTDS.dbf' SIZE 50M AUTOEXTEND ON NEXT 1M MAXSIZE 100M ; 임시 테이블 스페이스 생성 // 인덱싱이나 클러스터링 등 부수적인 작업을 위해서 사용된다. CREATE temporary tablespace TS_USER1_TEMP TEMPFILE '/oracle/oradata/test/TS_USER1_TEMP.dbf' size 100M EXTENT management local uniform size 128k; //사용자 계정 생성 //계정명은 user1이고 테이블 스페이스는 TS_USER1을 사용하며 //임시 테이블 스페이스는 TS_U.. 더보기