본문 바로가기

반응형

sql_tuning

(33)
Section3. Data Dictionary [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] 데이터 딕셔너리 오라클 DB를 구성하는 모든 요소에 대한 정보를 가짐 Object, Schema, Segment, SGA, Parameter, Log, Data File, Backup, Recovery 등 다양한 성능 정보와 Wait 정보 제공 Wait 정보란? 오라클 어디서 병목 현상이 발생하고 있는지 파악 하는 정보. DB Admin, Monitoring, Tuning 을 위한 가장 중요한 정보 오라클 Data Dictionary 유형 특정 사용자/전체 사용자/ DBA 권한 사용자에게만 보여지는 Object 정보 ex> USER_XXX Views 소유자(즉 나, 사용자) 테이블 볼 수 있음. 소유자, 건수 등 확인 가능 All_XXX Views..
Section2. OLTP와 BATCH 그리고 I/O Latency와 Throughput의 이해 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] OLTP와 Batch 그리고 I/O Latency와 Throughput OLTP (On-Line Transaction Processing)는 실시간으로 DB 데이터를 조회/갱신 하는 시스템 대부분의 업무 시스템 (금융/통신/ERP 등 조회업무, 쇼핑몰 주문, 콘서트 예매 등) 즉 대량의 동시접속이 요구 되는 시스템 건당 매우 빠른 수행 시간이 생명(보통 0.01~1초 이하) 빠른 수행 시간을 위해 I/O Latency 가 우선시 됨 Latency란? 시스템 리퀘스트에 대해 얼마나 response가 얼마나 빠르게 오냐? Batch Processing은 작업을 몰아 두었다가 한 번에 처리하는 시스템 주로 야간, 주말, 월말 등 정산/마감/통계 생성 등..
Section2. HDD와 Flash Storage 그리고 RAID의 이해 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] Disk Storage Stripping Storage에 RAID 0 Stripping을 한 경우 I/O가 균일하게 모든 Disk Drive에 동시에 수행되어 빠른 시간 안에 I/O 처리. LUN group 또는 LVM? LUN Group(Logical Unit Number Group) 저장 공간의 일부를 그룹화 하는 방법. 여기서 LUN은 일종의 주소처럼 작동하며, 컴퓨터가 네트워크 상의 특정 저장 공간을 찾을 수 있도록 도와줌. LVM(Logical Volume Manager) 논리 볼륨 관리자 라고 불리며, 컴퓨터의 저장 공간을 더 유연하고 효율적으로 사용 할 수 있도록 함. LVM은 컴퓨터의 하드 드라이브들을 마치 하나처럼 묶어서 사용 할 ..
Section2. FullScan과 Random IO 비교 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] ■ Random I/O 증가량에 따른 성능 변화 (Random I/O, Full Scan 모두 Disk I/O 로 가정) - 1만건의 Record를 Access하기 위해서 Random I/O 시 1,000 Block이 필요하고 Full Scan 시 십만 Block 필요할 경우 어떤 Access가 더 빠른가? - 백만건의 Record를 Access 하기 위해서 Random I/O 시 십만 Block 이 필요하고 Full Scan 시 천만 Block 필요 할 경우 어떤 Access 가 더 빠른가? -> Random I/O 는 그 절대량이 늘어날 수록 H/W 적인 제약으로 인하여 수행 성능이 급격하게 저하 됨. - 특정 Table의 컬럼값 분포도가 균일..
Section2. Sequential 과 Random Access [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] Hard Disk 의 데이터 Access 원리 - 해당 데이터를 Access 하기 위해 Disk는 어떤 움직임을 해야 하는가? - Hard Disk 는 Spindle 과 Head의 기계적인 움직임을 통해 데이터에 엑세스 함. - 이러한 기계적 움직임은 Hard Disk Access 속도의 많은 부분을 차지하고 있음. - 데이터의 Access랑 보다 주어진 데이터를 Access 하기 위한 기계적 움직임이 얼마나 많았는지가 상대적으로 Hard Disk의 수행속도를 더 좌우함. - 따라서 자주 Access 해야 되는 Block을 이동해야 하는 Random I/O의 경우 Hard Disk의 수행 속도가 느려질 수 있음. -> Sequential Acces..
Section2. 클러스터링 팩터 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] 클러스터링 팩터: 사용자가 자주 검색하는 비슷한 값들이 얼마나 서로 모여 있느냐에 따라서 액세스 하는 block 건수가 달라짐. 즉 I/O 횟수가 차이가 나게 됨. 사용자가 입력하는 데이터를 주어진 블록의 여유 공간에 순차적으로 위치 -> 빠른 데이터 입력 속도, 상대적으로 나쁜 클러스터링 팩터 사용자가 입력하는 데이터를 그 값에 따라 지정 된 블록 영역에만 입력 -> 느린 데이터 입력 속도, 상대적으로 좋은 클러스터링 팩터 데이터 저장구조 최적화의 이슈 - 특정 조건의 검색 최적화를 위해 데이터를 저장하였지만 해당 조건이 아닌 다른 조건으로 검색할 경우에는 오히려 성능저하가 발생 할 수 있음. - 데이터를 바라보는 View는 단일 조건일 수 만은..
Section2. 데이터베이스 블록(Database Block)의 이해 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] Database Block의 정의 - DB 데이터 검색과 저장의 가장 기본 단위 (8K, 16K, 32K, 64K) - 한번 만들면 변경 할 수 없음 - 모든 DB I/O는 DB Block 단위로 수행 - 보통 Block 당 평균 수십 개의 레코드가 들어갈 수 있는 크기로 구성 - 단 하나의 레코드를 읽을 지라도 최소한 1 Block 은 Access 해야 함 *백만 개의 Record를 가지는 두 개의 테이블이 있다. 검색 속도는 서로 동일한가? - 다를 수 있음. - T1 은 컬럼이 100개고 T2는 컬럼이 10개라면, T1의 면적이 훨씬 큼. - I/O 는 데이터베이스 블락 단위로 일어나며, I/O 횟수는 면적에 비례함. - 따라서 T1 검색 속..
Section2. 최적 저장 구조를 위한 고려사항과 Indexing 및 Full Scan의미 [출처: 오라클 성능 분석과 인스턴스 튜닝 핵심 가이드] DBMS 성능에 가장 큰 영향을 미치는 것은? I/O 최적 저장 구조를 위한 고려 사항 - 데이터를 임의의 공간에 보관 - 데이터를 검색 할 시 시간이 더 걸림 - 데이터를 저장 할 시 빠르게 완료 됨 - 데이터를 약속된 공간에 정확히 보관 - 데이터를 검색 할 시 빠르게 완료 됨 - 데이터를 저장 할 시 시간이 더 걸림 -> 데이터의 저장 방식과 검색은 매우 밀접한 관계에 있음. 다양한 데이터 저장 방식을 활용하여 상황에 맞게 검색 속도를 향상 시킬 필요가 있음. 인덱스와 Full Scan 을 통한 검색 - 검색 부분이 몰려있는지, 퍼져 있는지에 따라 선택해야 함. 그렇지 않으면 I/O에 영향을 미치게 됨.

반응형