SQL 23

오라클 파티션 Partition

I. 오라클 파티션 정의 1. 파티션 개요 오늘날 기업에서 관리하는 데이터는 수백테라 바이트에 이르는 데이터베이스를 관리한다. 하지만 이런 데이터들 중 몇몇의 Big Transaction Table이 거의 모든 데이터를 가지고 있고 나머지 테이블들은 이 Big Transaction Table을 경유하여 액세스 하는 용도로 사용된다. 이렇게 데이터 크기도 크고 중요한 Big Transaction Table을 관리하는 부분에서 Troubleshooting이 발생될 경우 데이터베이스의 성능 및 관리작업에 심각한 영향을 받을 수 있다. 이러한 리스크가 있는 Big Transaction Table을 보다 효율적으로 관리하기 위해 Table을 작은 단위로 나눔으로써 데이터 액세스 작업의 성능 향상을 유도하고 데이터..

Oracle/SQL 2014.05.23

인라인 뷰(Inline View)연습

•사원테이블(TEMP)에서 사원의 연봉이 동일한 직급을 가진 사원의 평균연봉보다 많이 받는 사원의 사번,이름,연봉을 출력하세요. select emp_id, emp_name, salary, temp.lev from ( select lev, avg(salary) avg_salary from temp group by lev ) v, temp where temp.lev = v.lev AND temp.salary > v.avg_salary; EMP_ID EMP_NAME SALARY LEV ---------- ---------- ---------- ---- 19960101 홍길동 72000000 과장 19930331 정도령 70000000 차장 19950303 이순신 56000000 대리 * temp,tdept 테..

Oracle/SQL 2012.01.12

2012.01.11 SQL 7일차(Index) ; 정의, 생성원리, 작동원리, 단점(index split 등등), 인덱스의 종류, 결합인덱스의 효율에 관한 이슈, REBUILD 등 INDEX의 전반적인 내용

인덱스(INDEX) 1. 정의 : 한마디로 데이터의 주소록, 데이터를 쉽고 빠르게 관리하려고 만듬 풀어서 설명하면 아파트에 누굴 찾고 싶은데 한집, 한집 , 한집 , 한집 , 한집 일일이 찾지 않고 관리실에 가서 해당되는 사람의 주소를 보고 바로 찾는 방법 (위 상황에서 관리실의 주소록 : INDEX) 2. 생성원리 FULL SCAN(LOCK) ---------> SORT (인덱스를 만드려면 정렬을 해야합니다.; 목록을 생성한 후 정렬을 해서 저장합니다.) 풀어서 설명하면, 도서관에 정리 안된 책장을 정리해서 목록을 만들고 싶은데, 일단 목록을 만드려면 무슨 책들이 있는지 알아야 합니다. 그래서 책들을 일일이 다 살펴봐야합니다(FULL SCAN) 그런데 중간에 누가 빌려가버리고, 다시 꽂아넣고 하면 헷갈..

Oracle/SQL 2012.01.12

2012.01.11 SQL 7일차(무결성제약조건 Constraint) ;N/N, PRIMARY KEY, FOREIGN KEY, UNIQUE KEY, CHECK, 관련 딕셔너리

무결성 제약조건(Constraint) ; 조건에 맞지않은 데이터는 입력되지 않게 하고, 맞는 데이터만 입력되게하는 제약조건 Constraint의 개념 : 데이터의 정확성과 일관성을 보장하기 위해 테이블 생성시에 각 칼럼에 대해 정의 하는 규칙을 의미 특징 1. 입력된 데이터가 조건에 맞나 검사해보기 떄문에 당연히 안쓴것보다는 속도가 저하 2. 규칙은 컬럼별로(컬럼별로 검문소를 하나씩 세운다고 생각하세요) 3. constraint 생성시 딕셔너리에 저장된다, (예 : user_constraints 테이블, user_cons_columns ) 4. 일시적으로 활성, 비활성할 수 있다. Constraint의 종류 1. NOT NULL : NULL이 아닌 값만 허용 2. Unique Key(고유키) : 중복되지..

Oracle/SQL 2012.01.11

2012.01.10 SQL 6일차(DELETE, Truncate, Drop들의 차이점, 데이터 딕셔너리)

자료를 삭제하는 명령어는 3가지가 있다. delete, truncate, drop 이 중 ELETE 는 DML명령어 TRUNCATE, DROP은 DDL명령어이다. 이것으로 인한 트랜젝션관리의 차이가 생길 수 있다. 이것 외에도 차이점이 존재하는데, 고객테이블이 존재하는데 100만행(건)의 자료가 있고, row칼럼은 데이터에 번호를 매긴 칼럼이다. (총 고객테이블의 용량은 100M) 만약에 DELETE FROM 고객 WHERE row BETWEEN 1 and 90만 하게 되면 남는 행은 10만건이 되게 된다. 하지만, 테이블 자체의 용량은 100M그대로이다. 우리 눈에는 지웠다고 표시되지만, 사실상 살아있다. TRUNCATE 고객; 의 경우에는 데이터가 다 지워지고, 용량도 지워지지만, 테이블의 구조는 살..

Oracle/SQL 2012.01.11

2012.01.10 SQL 6일차(DDL에 들어가는 데이터타입들에 대한 설명, DDL)

데이터 타입 숫자 number(p, s) p : 전체자리 수, s: 소수점 이하 예) number(5,3) : 12.345, number(3) : 218 ... number : 그냥 number만 쓰게 되면 총 38자리 양의정수 날짜 date 문자 char(n) : n 바이트 예약한 그대로 끝까지 사용하는 것(최대 2000bytes) varchar2(n) : n바이트 예약하고, 남는 자리가 있으면 반환(최대 4000bytes) varchar2의 단점 : 메모리반환 후에 update했는데 할당된 길이보다 길게 update해버렸을 때에는 곤란합니다. 이 경우에는 char는 별 문제가 되지 않습니다. (즉, update시에는 varchar2가 불리합니다.) (보통 insert를 update보다 훨씬 많이 수행..

Oracle/SQL 2012.01.11

2012.01.10 SQL 6일차(ITAS, CTAS, SQL 명령어들의 분류, 그 중 DML), 트렌젝션, 시퀀스

대량의 데이터를 다른 테이블로 옮기는 방법 2가지(ITAS, CTAS) ; 아이타스 , 씨타스 ITAS : Insert into Table name Select 예제 : insert into member2 select * from member; CTAS : Create Table name AS Select ... 예제 : create table member2 as select * from member; 차이점 : ITAS는 옮길 대상의 테이블이 존재하고, 데이터만 옮기고 싶을 때 사용하고, CTAS는 대상 테이블이 존재하지 않을 때, 사용합니다. ----------------------------------------------------------------------------- SQL 명령어들의 분..

Oracle/SQL 2012.01.10