본문 바로가기

전체 글

(656)
[성능튜닝] ASH(Active Session History)란? ASH(Active Session History) SQL> select * from v$sgastat where name = 'ASH buffers'; POOL NAME BYTES --------- --------- --------- shared pool ASH buffers 16252928 - 오라클은 현재 접속해서 활동 중인 Active 세션 정보를 1초에 한번씩 샘플링해서 ASH 버퍼에 저장합니다. - SGA Shared Pool에 CPU당 2MB의 버퍼를 할당받아 세션 정보를 기록하며, 1시간 혹은 버퍼의 2/3가 찰때마다 디스크로 기록합니다. 즉, AWR에 저장하는 것입니다. - v$active_session_history 뷰를 이용해 ASH 버퍼에 저장된 세션 히스토리 정보를 조회할 수 있습니..
[대용량DB] Memory vs Disk I/O I/O 효율화 튜닝의 중요성 - 디스크를 경유한 입출력은 메모리를 통한 입출력보다 평균적으로 10,000배 이상 느립니다. - 데이터베이스는 하나의 파일 시스템입니다. SQL을 이용하여 데이터 파일에 데이터를 저장하고 출력시 DB 버퍼 캐쉬에 데이터가 없을 경우 디스크를 통하여 데이터를 버퍼 캐쉬에 저장한 후 결과를 줍니다. - 물리적 디스크 I/O가 필요할 경우 서버 프로세스가 디스크에서 원하는 블록을 가져오고, 같은 데이터를 원할 경우 경합이 발생하여 대기 시간이 길어집니다. - 모든 자료를 메모리에 저장하여 사용하면 좋지만 비용과 기술적 측면에서 한계가 있습니다. 시중에는 메모리 데이터베이스가 사용되지만 극히 빠른 액세스가 제한되는 업무 영업에 국한되어 사용되어지고 있습니다. - 유한한 메모리 자원..
[데이터베이스] 아는만큼 보이는 데이터베이스(1) - PK 컬럼 순서 01 PK 컬럼 순서, 대충하지 말자데이터베이스 생성 절차는 "분석 → 설계 → 구축 → 테스트 → 이행" 입니다. 설계 단계 이후, 완성된 데이터 모델을 토대로, 물리적인 테이블을 정해진 DBMS에 맞게 생성합니다. 프로젝트에서 데이터 모델링이 끝나면 PK 순서에 대해 별달리 고려하지 않고 바로 테이블을 생성합니다. 테이블을 추가하거나 변경할 때에도 PK 컬럼 구성에 신경을 쓰지 않습니다. 이런 경우 아래와 같은 문제점이 발생할 수 있습니다. - 인덱스 구성에서 의도하지 않은 순서의 Primary Key Unique Index가 생성 - 그에 따라 조회 SQL 실행시 성능 저하 현상 발생 우려 - 많은 인덱스가 생성되므로 입력/수정/삭제 시 불필요한 내부 작업이 증가해 성능에 악영향을 미침 테이블 생성..
[데이터베이스] 아는만큼 보이는 데이터베이스 설계와 구축 아는 만큼 보이는 데이터베이스 설계와 구축 발 행: 2008년 7월 5일지은이: 이춘식 저자 서문: 데이터베이스 이론보다 재해석하여 실무에 적용하는 것이 더 중요하다. 실전에서 활용할 수 있는 핵심 관심사, 그리고 데이터베이스 설계와 구축에 있어 CSF(Critical Success Factor)만을 선택하여 주제별로 글을 전개하였다. 이론에 입각한 서술식 설명보다는 실무의 현상을 분석하고 이를 재해석함으로써, 이론을 실무에 적용하는 능력을 향상시키자는 목적으로 이책은 집필되었다. 운영계 데이터베이스가 정보계인 데이터웨어하우스(DW) 환경에서 주제별로 다시 재구성되는 것처럼 이책은 2016년까지 재발행되어오고 있다. 프리뷰: 회사에서 맡은 주업무는 정보계 DW 환경에서의 DB프로그램 개발, 운영업무입니다..
[오라클] RAC 튜닝 방법(1) - gc cr/current block 2-way/3-way gc cr/current block 2-way/3-waygc cr/current block 2-way 이벤트는 gc cr/current request 이벤트에 대한 Fixed-up 이벤트로, 블록을 요청한 프로세스가 마스터 노드로부터 직접 블록 이미지를 전송 받았다는 것을 의미합니다. gc cr/current request 이벤트가 gc cr/current block 2-way 이벤트로 바뀌는(Fixed-up되는) 흐름은 다음과 같습니다. - 요청 노드의 유저 프로세스가 특정 데이터 블록을 CR 모드 또는 Current 모드로 읽고자 한다.- 유저 프로세스는 해당 데이터 블록의 적절한 버전이 로컬 버퍼 캐시에 없는 것을 확인하고, 마스터 노드의 LMS(Lock Monitor Services) 프로세스에 ..