반응형

기술 공부 노트 102

오라클 STARTUP 단계

STARTUP 단계 1. SHUTDOWN – 인스턴스가 닫힘 파라미터 파일이 있어야 NOMOUNT 단계로 갈 수 있다. 2. NOMOUNT – 인스턴스 시작 파라미터 파일을 읽고, SGA 를 할당하고, 백그라운드 프로세스가 시작되고, ALERT LOG 파일 및 추적파일을 연다. CONTROL FILE 이 있어야 MOUNT 단계로 갈 수 있다. 3. MOUNT – 데이터베이스의 모드를 변경하는 단계 DATAFILE 의 이름 바꾸기, ARCHIVELOG MODE 변경, DB 복구 DATA FILE, REDO LOG FILE 이 정상적으로 있어야 OPEN 단계로 갈 수 있다. 4. OPEN – 데이터베이스가 정상적으로 열린 상태 STARTUP 명령은 SHUTDOWN 단계에서만 사용할 수 있고 NOMOUNT 나..

SPFILE 생성하는 방법

SPFILE 생성 SQL> CREATE SPFILE FROM PFILE; 일반적으로 PFILE 은 initSID.ora 라는 이름으로 되어있고, (SID 는 ORACLE_SID 로 오라클 인스턴스 명이다? ㅡ,.ㅡ;) SPFILE 은 spfileSID.ora 라는 이름으로 되어있다. 이 두가지는 초기화 매개변수로 인스턴스를 시작하기 위해 필요하다. pfile 은 텍스트 편집기에서 수정할 수 있으나 spfile 은 이진파일로 되어있어서 편집기에서는 수정할 수 없다. pfile 은 텍스트 편집기에서 수정후 인스턴스를 재시작해야 한다. spfile 은 현재 세션에서도 수정해서 적용할 수 있다.(물론 재시작후 적용되는 것도 있다.ㅡ.ㅡ) 반대로 SPFILE 에서 PFILE을 생성할 수 있다. CREATE PFI..

오라클 서버의 구조

공부하면서 짝대기 거가며 A4 용지에 끄적인걸 찍어서 보여주면 좋겠지만,, 일단은 그냥.. 후후^^; 오라클 서버는 일단 인스턴스와 데이터베이스로 구성되어지고 다시 인스턴스는 백그라운드 프로세스와 메모리 영역으로 나누어진다. 백그라운드 프로세스는 5개의 주요 프로세스와 기타프로세스로가 있고 메모리에는 SGA 와 PGA 가 있다. 데이터베이스는 데이터파일과 컨트롤파일, 리두로그 파일로 구성된다. 그래서 아래처럼 정리.. ^^; ORACLE SERVER 1. Instance (1) BackGround Porcess - PMON : 프로세스 모니터, 트랜잭션 롤백 - SMON : 시스템 모니터, 인스턴스 복구 - DBWR : 디비 라이터(쓰기) 체크포인트가 일어날 시, 더티버퍼 수가 한계값을 넘을시, 사용가능..

인덱스

인덱스가 사용되지 않는 경우 - 인덱스 컬럼은 비교되기 전에 변형이 일어나면 인덱스를 사용할 수 없다. 인덱스는 가공되기 전에 값으로 생성되어 있지 가공된 후의 값을 가지고 있지않다. - 부정형으로 조건을 기술한 경우에도 인덱스를 사용하지 않는다. - 인덱스 컬럼이 null 로 비교되면 사용할 수 없다. 결합인덱스 - 첫번째 컬럼이 검색되지 않으면 소용없다. - 첫번째 컬럼이 '='으로 검색되어야 한다. between이나 like 로 검색되면 효율이 떨어진다. 개발시 인덱스 추출 요령 1. 반복 수행되는 액세스 형태를 찾는다. - 기본키, 외부키, 서브쿼리시 연결고리가 되는 컬럼 2. 분포도가 아주 양호한 컬럼들을 발췌하여 액세스 유형을 조사한다. 3. 자주 넓은 범위의 조건이 부여되는 경우를 찾는다. ..

문자형 데이터에서 엔터값 찾기

SELECT CHARINDEX(char(13), Title), Title FROM EnterTest 이렇게 하면 엔터가 들어간 부분에 인덱스를 구할 수 있다. 그래서 어떤 글을 썼는데, 처음 엔터까지 문장을 끊고 싶으면 substring 을 써서 처리할 수 있다. - substring(0, charindex(char(13), Title) ) 뭐 이런식으로 하면 되나?? 이건 쿼리로 한 건데 물론, 프로그램 소스에서도 처리할 수 있다. 알아서들 해보삼~ 후후후^^

메인쿼리-서브쿼리(Main Query - Sub Query)

Main Query - Sub Query ? 사원테이블에서 최대월급을 받는 사람과 그 월급을 출력하려면.. select ename, max(sal) from emp where sal=max(sal); 이러면 되는 줄 알았건만.. ㅡ,.ㅡ;; '그룹 함수는 허가되지 않습니다' 이건 뭐여~~ 서브쿼리를 사용하자! select ename, sal from emp where sal=(select max(sal) from emp); ENAME SAL ---------- ---------- KING 5000 where 절에 있는 (select max(sal) from emp) 이 서브쿼리다. ? 여기서, JONES의 월급보다 많이 받는 사원들의 이름, 월급을 출력하려면.. select ename, sal from ..

SQL - 조인

1. equi join - 두 테이블 사이에 서로 공통된 컬럼이 있을때 하는 조인 where 절에 증거를 줘야한다. 먼저, emp 테이블 말고 dept 테이블이 있는데 이를 확인하면.. select * from dept; DEPTNO DNAME LOC -------------------------------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 여기있는 deptno 가 emp 테이블과의 연결고리다. emp 테이블에도 deptno가 있는 것을 확인해보라. 그럼 여기서,, 각 사원들의 근무지를 보려면 select ename, loc from emp, dept where emp.deptno=d..

반응형