데이터베이스
-
-
-
파티셔닝데이터베이스 2021. 7. 4. 20:18
파티셔닝 : 테이블 또는 인덱스 데이터를 파티션 단위로 나눠 저장하는 것. 테이블 또는 인덱스를 파티셔닝하면 파티션 키에 따라 물리적으로는 별도의 세그먼트에 데이터를 저장한다. * 관리적 측면 : 파티션 단위 백업, 추가, 삭제, 변경 * 성능적 측면 : 파티션 단위 조회 및 DML 수행, 경합 및 부하 분산 파티셔닝은 우선 관리 측면에서 많은 이점이 있다. 보관주기가 지난 데이터를 별도 장치에 백업하고 지우는 은 데이터베이스 관리자들의 일상적인 작업이다. 만약 파티션 없이 대용량 테이블에 이런 작업을 수행하려면 시간도 오래 걸리고 비효율적이다. 대용량 테이블에 인덱스를 새로 생성하거나 재생성할 때도 파티션 기능을 이용하면 효과적이다. 성능 측면에서 효용성도 매우 좋다. 데이터를 빠르게 검색할 목적으로 ..
-
-
소트 튜닝데이터베이스 2021. 6. 29. 22:12
1. 소트와 성능 가. 메모리 소트와 디스크 소트 SQL 수행 도중 소트(Sort) 오퍼레이션이 필요할 때마다 DBMS는 정해진 메모리 공간에 소트 영역(Sort Area)을 할당하고 정렬을 수행한다. 1장에서 말했다시피 Oracle은 소트 영역을 PGA(Private Global Area) 영역에 할당하고, SQL Server 는 버퍼 캐시에 할당한다. 소트에 필요한 메모 공간이 부족하면 디스크를 사용하는데, 이 영역을 Oracle 은 Temp Tablespace 라 하고, SQL Server 는 tempdb 라고 한다. 가능하면 메모리의 소트영역에서 데이터 정렬 작업을 끝내는 것이 좋지만, 많은 데이터를 정렬할 때는 어쩔 수 없이 디스크 공간을 사용해야 한다. 특히 전체 대상 집합을 디스크에 기록했다..
-
쿼리변환 Query TransFormation데이터베이스 2021. 6. 25. 22:09
1. 쿼리변환이란? 2. 서브쿼리 Unnesting 3. 뷰 Merging 4. 조건절 Pushing 5. 조건절 이행 6. 불필요한 조인 제거 7. OR 조건을 Union 으로 변환 8. 기타 쿼리변환 1. 쿼리변환이란? 옵티마이저가 SQL 을 분석해 의미적으로 동일하면서 더 나은 성능이 기대되는 형태로 재작성하는 것을 말한다. 이는 본격적으로 실행계획을 생성하고 비용을 계산하기에 앞서 사용자 SQL 을 최적화에 유리한 형태로 재작성하는 것으로서, DBMS 버전이 올라갈 수록 종류가 더 다양해짐은 물론 더 적극적인 시도가 이루어지고 있다. 비용기반 옵티마이저의 서브 엔진으로 Query TransFormer, Estimator, Plan Generator 가 있다고 했는데 Query TransFormat..
-
SQL 공유 및 재사용데이터베이스 2021. 6. 22. 22:08
소프트파싱/하드파싱 바인드 변수 사용 애플리케이션 커서 캐싱 Static SQL 과 Dynamic SQL 1. 소프트 파싱 vs. 하드파싱 시스템 공유 메모리에서 SQL 과 실행계획이 캐싱되는 영역을 오라클에선 라이브러리 캐시, SQL 서버에서는 프로시져 캐시라도 부른다. 사용자가 SQL 을 실행하면 제일 먼저 SQL 파서가 SQL 문장에 문법적 오류가 없는지를 검사한다.(Syntax검사) 문법적으로 오류가 없으면 의미상 오류가 없는지는 검사한다.(Semantic 검사) 예를 들어 존재하지 않거나 권한이 없는 객체를 사용했는지, 또는 존재하지 않는 컬럼을 사용했는지 등을 검사한다. 이런 검사를 마치면 사용자가 발행한 SQL 과 그 실행계획이 라이브러리 캐시에 캐싱됐는지를 확인한다. 만약 캐싱돼 있다면, ..
-
옵티마이저데이터베이스 2021. 6. 21. 22:42
1. 옵티마이저 종류 1. 규칙기반 옵티마이저 Rule-Based Optimizer(RBO) 미리 정해 놓은 규칙에 따라 액세스 경로를 평가하고 실행계획을 선택한다. 여기서 규칙이란 액세스 경로별 우선순위로서, 인덱스 구조, 연산자, 조건절 형태가 순위를 결정짓는 주요인이다. 2. 비용기반 옵티마이저 Cost-Based Optimizer(CBO) 비용이란, 쿼리를 수행하는 데 소요되는 일량 또는 기산을 뜻한다. CBO 가 실행계획을 수립할 때 판단 기준이 되는 비용은 어디까지나 예상치다. 미리 구해놓은 테이블과 인덱스에 대한 여러 통계정보를 기초로 각 오퍼레이션 단계별 예상 비용을 산정하고, 이를 합산한 총비용이 가장 낮은 실행계획을 선택한다. 비용을 산정할 때 사용하는 오브젝트 통계 항목으로는 레코드 ..