Database

Database

SQL 분석 도구

실행 계획을 확인할 수 있는 방법은 여러 가지가 있는데, 오라클이 기본으로 제공하는 쿼리 툴 SQL*Plus에서 아래 명령을 수행하면 실행계획이 PLAN_TABLE에 저장된다. explain plan for select * from emp where ename = :enmae ad deptno = :deptno; PLAN_TABLE에 저장된 정보를 읽어 분석하기 쉬운 형태로 포메팅하는 방법에 여러 가지가 있지만, 가장 쉬운 방법은 아래와 같이 dbms_xplan.display 함수를 사용하는 것이다. select * from table( dbms_xplan.display(null, null, 'typical') ); SQL Server에서 예상 실행계획을 출력하는 방법 set showpla..

Database

데이터베이스 I/O 매커니즘

블록 단위 I/O 오라클을 포함한 모든 DBMS에서는 블록과 비슷한 단위를 통해 I/O 작업을 수행하며, 대표적인 예시는 아래와 같다. 데이터파일에서 DB 버퍼캐시와 데이터파일 I/O 모두에 적용된다. 데이터파일에서 블록을 직접 읽고 쓸 때(Direct Path I/O) 버퍼캐시에서 블록을 읽고 쓸 때 버퍼캐시에서 변경된 블로긍ㄹ 데이터팡리에 쓸 때 버퍼 캐시 모든 DBMS는 사용 빈도가 높은 데이터 블록들이 더 오랫동안 남아있도록 하기 위해서 LRU 알고리즘을 사용한다. 모든 버퍼 블록 헤더를 LRU 체인에 연결해서 사용 빈도에 따라 수시로 위치를 옮기다가, Free 버퍼가 필요해질 때면 액세스 빈도가 낮은 데이터 블록들을 우선적으로 밀어낸다. Sequetial 엑세스, Random 액세스 시퀀셜 액세..

Database

SQL 처리과정

SQL 기본 개념 데이터베이스과 통신하는 기본적인 구조적 질의 언어이며, 구조적, 집합적, 선언적인 특징을 가지고 있다. SQL 처리 과정 파싱 사용자로부터 전달받은 SQL을 SQL 파서가 파싱하며, 이 과정에서 파싱 트리 생성, Syntax 체크(문법적 오류 체크), Semantic 체크(의미상 오류가 없는지 확인) 등을 수행한다. SQL 최적화 옵티마이저가 딕셔너리 테이블에서 미리 수집한 시스템 및 오브젝트 통계 정보를 바탕으로 다양한 실행 경로를 생성해 비교한 후 가장 효율적인 하나를 선택한다. DB의 효율을 결정짓는 가장 중요한 단계이다. 로우 소스 생성 sql 옵티마이저가 선택한 실행 경로를 실제 수행 가능한 코드 또는 프로시저 형태로 포맷팅 하는 단계다. 로구 소스 생성기가 이 역할을 맡으며,..

Database

오라클 아키텍처

오라클 아키텍처에서 데이터베이스의 정의 오라클에서는 디스크에 저장된 데이터 집합(Datafile, Redo Log File, Control File 등)을 데이터베이스 라고 부른다. 그리고 SGA (Server Global Area) 공유 메모리 영역과 이를 액세스하는 프로세스 집합을 합쳐서 인스턴스라고 부른다. 오라클 백그라운드 프로세스 종류 SMON(System Monitor) 오라클 인스턴스를 관리하는 프로세스, 오라클 인스턴스에 장애 발생 후 재가동 시 복구를 수행하고,임시 세그먼트와 익스텐트를 모니터링하여 데이터파일의 빈 공간 연결 → 하나의 큰 빈 공간으로 만듦. 더 이상 사용하지 않는 임시 블록 세그먼트를 재사용할 수 있도록 함. PMON(Process Monitor) 오라클 서버에서 사용되..

Database

Active Session History(ASH)

배경 실시간 모니터링을 통해 문제를 빠르게 해결하려면 세션 레벨 성능 분석이 필요한데, 오라클 9i까지 제공하던 세션 레벨 동적 뷰만으로는 한계가 많았다. 물론 SQL 트레이스를 통해 가장 상세한 세션 레벨 분석이 가능하지만 다음과 같은 어려움이 있었다. 시스템에 주는 부하가 큼. 파일 단위로 수집되기에 통계적 접근 어려움. 분석 완료 까지 소요되는 시간 큼. 수동으로 활성화해야함. (⇒ 때문에 이미 상황이 끝나고 난 뒤에는 확인 불가) 도입 그렇기에 오라클 10g부터는 ASH 기능을 도입하여, 현재 접속해서 활동중인 Active Session 정보를 1초에 한 번씩 샘플링해서 ASH 버퍼에 저장한다. SGA Shared Pool에서 CPU 당 2mb를 할당받아 세션 정보를 기록하며, 1시간 혹은 버퍼의..

xlwdn98767
'Database' 카테고리의 글 목록 (4 Page)