개발183 OPTIMIZER Server Process는 자기가 직접 실행계획을 세우지 못하기 때문에 Optimizer가 실행 계획을 세워 전달해 준다. 일반적으로 SQL은 선언적 언어 = Declarative원하는 결과만 알려주고 계획은 스스로 판단즉, 원하는 데이터의 집합만 알려줄 뿐, 그 데이터를 얻기 위한 구체적 방법은 제시하지 않음 모든 처리 과정까지 사용자가 직접 기술하는 것은 절차적 언어 (Procedural) 하나의 SQL을 수행하는 방법은 여러가지가 있지만그 중에서 어떤 것으로 이용하냐에 따라 실행 효율에 차이가 생긴다.--> Optimizer는 실행 계획들을 수립하고, 그중 가장 효율적인 실행 계획을 찾는다. Parser를 통해 표현식 및 조건 평가조건이 있는 경우 그에 대해 가능한 계산을 모두 수행 Query T.. 2017. 3. 9. 클러스터드 인덱스와 넌클러스터드 인덱스 몇일전에 클러스터드 인덱스와 넌 클러스터드 인덱스에 대해서 나에게 물어보신 분이 계셨다.헌데 내 기억 속에는 클러스터드 인덱스는 테이블 당 1개만 생성할 수 있다는 것만 기억날 뿐 다른 것은 기억나지 않았다. 그래서 내 기억 속에 오랫 동안 자리 잡기를 바라는 마음으로 이곳에 정리한다. 클러스터드 인덱스와 넌 클러스터드 인덱스는 간단하게 다음과 같이 정리할 수 있다. 클러스터드 인덱스 넌 클러스터드 인덱스 차이 물리적으로 행을 재배열 물리적으로 재배열 하지 않는다. 크기 인덱스 페이지 용량이 넌 클러스터드 인덱스 페이지 용량보다 작다. 클러스터드 인덱스 페이지 용량보다 크다. 선택도 30% 이내에서 사용해야 좋은 선택도 3% 이내에서 사용해야 좋은 선택도 최대 갯수 테이블당 1개 테이블당 249개 위에서.. 2017. 3. 9. DB 제약조건 [펌] 제약조건 (Constraint) 이란?제약조건이란 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 여러 가지 규칙을 적용해 놓는거라 생각하면 된다. 간단하게 테이블안에서 테이터의 성격을 정의하는 것이 바로 제약조건 이다.- 제약조건은 데이터의 무결성 유지를 위하여 사용자가 지정할 수 있는 성질 이다.- 모든 제약조건은 데이터 사전(DICTIONARY)에 저장 된다.- 의미있는 이름을 부여했다면 CONSTRAINT를 쉽게 참조할 수 있다.- 표준 객체 명명법을 따르는 것이 좋다.- 제약조건은 테이블을 생성할 당시에 지정할 수도 있고, 테이블 생성 후 구조변경(ALTER)명령어를 통해서도 추가가 가능하다.- NOT NULL제약조건은 반드시 컬럼 레벨에서만 정의가 가능하다.NOT NULL 조건컬럼을 필.. 2017. 3. 8. DB INDEX 정리 [펌] 1) INDEX의 의미RDBMS에서 검색속도를 높이기 사용하는 하나의 기술이입니다.INDEX는 색인입니다. 해당 TABLE의 컬럼을 색인화(따로 파일로 저장)하여 검색시 해당 TABLE의 레코드를 full scan 하는게 아니라 색인화 되어있는 INDEX 파일을 검색하여 검색속도를 빠르게 합니다.이런 INDEX는 TREE구조로 색인화합니다. RDBMS 에서 사용하는 INDEX는 Balance Search Tree 를 사용합니다.실제로는 RDBMS 에서 사용되는 B-Tree 는 B-Tree 에서 파생된 B+ Tree 를 사용한다고 합니다. 참고로 ORACLE이나 MSSQL에서는 여러종류의 TREE를 선택하여 사용가능하다. 2) INDEX의 원리 INDEX를 해당 컬럼에 주게 되면 초기 TABLE생성시 만들.. 2017. 3. 8. 이전 1 ··· 17 18 19 20 21 22 23 ··· 46 다음