일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 즐거운자바
- 소스트리
- vmin
- EDWITH
- 다시볼 것
- datalist
- 깃헙
- 속성 선택자
- 보충필요
- spring
- 웹개발
- 서블릿
- 부정 선택자
- 부스트코스
- jsp
- nth-of-type()
- optgroup
- 복합 선택자
- 상속
- JavaScript
- 가상클래스 선택자
- vmax
- 자바
- nth-child()
- ES6
- 김성박
- 즐거운 자바
- 가상요소 선택자
- HTML Templating
- 다시보자
Archives
- Today
- Total
기억의 DataBase
ORACLE의 기본구조2 본문
- B(Balanced) - Tree 인덱스
-루트값은 중간값으로 지정해야 양쪽의 균형이 맞아 Index의 효율이 올라간다.
-Index가 없는 경우 DataBlock을 다뒤져야 하므로 비효율 ↑
(단, 전체 데이터를 대부분 Select하는 경우라면, Index가 비효율적일수 있음)
-요청 > Index > DataBlock
-Index 효율이 떨어져서 속도가 느려지면 Index를 Rebulid해준다.
(자동으로 중간점을 잡아서 기준 Node로 설정)
-Index안에는 RowID가 있어 그 주소를 바탕으로 실 Data를 찾아가는 것
(RowId는 ORACLE이 부여하는 것)
- Bitmap 인덱스
-DW에 많이 사용 / OLAP
-빈번한 I/O에는 부적합 >> Index Rebuild가 오래걸림
-Select에는 용이
- Index로 구성된 테이블
-한 Table에 Index와 Data가 함께 있는 Table
-큰 Data의 경우는 효과적이나 작은 Data의 경우 그냥 바로 찾는게 빠름
- Index된 Data Cluster
-자주 함께 사용되는 Table(주문/주문품목)의 Index를 묶어서 한번에 Select
> 따로 Select하는 것에 비해 2배 이상 빠름(묶음 조회 + Index를 다 뒤질 필요도 없음)
- Hash Function(Hash)
임의의 키값을 Hash 값(고정)으로 변환하여 빠른 Mapping을 가능하게 하는 함수
- Hash Cluster
-Hash function을 활용하면 Index보다 빠름 But범위를 찾기는 어려움
ex) '홍길동' Good / '홍Like' Bad
- Sequence
읽을 때마다 값이 증가하는 DB객체
ORACLE 서버내에서 처리를 위해 쓰던 것을 USER에게 제공
- Synonym
Application의 DB에 대한 의존성을 낮춤
UA / TC / CI >> A/C/I로 별칭으로 사용함
>> Synonym UA as A
>> 다른 상황에도 DB 사용을 유연하게 함
- Role
역할을 가진 권한들을 묶어서 줌(Grant, Revoke)
- Audit(감사)
Log들을 확인 할 수 있음 >> 접속, 조회, 실패 기록
- TableSpace
실제 데이터가 저장되는 File과 대응되는 논리적인 개념의 Data 공간으로
크게 시스템 테이블 스페이스와 비시스템 테이블 스페이스로 나뉨
>> Extension이 발생하면 TableSpace 크기를 키워줘야 한다(성능↓)
- Data Block
-BlockSize는 초기 설정시 지정한 사이즈를 함부로 수정해서는 안된다(기존 Data가 깨진다)
-FreeList : Data 하한과 상한 사이에 있는(데이터 저장이 가능한) DataBlock List를 의미
- Hang Chaning
-한 Record가 너무 크면 복수의 DataBlock에 저장되는데, 이 연결고리를 의미
-잦은 I/O로 인해 성능저하가 일어나므로 지양해야 함(적절한 BlockSize 지정을 통해서)
- ORACLE 소프트웨어 아키텍쳐
○서버측 백그라운드 프로세스
(1) Database Writer Process(DBWR)
메모리에 있는 변경된 데이터 블록을 데이터베이스의 데이터 파일에 기록한다.
(2) Log Writer Process(LGWR)
커미트한 모든 변화에 관한 정보를 기록한다.
(3) Archiver Process(ARCH)
LGWR이 redo 엔트리를 채운 후 ARCH는 이 로그 파일들을 자동으로 백업한다.
(4) Checkpoint Process(CKPT)
DBWR은 주기적으로 체크 포인터를 수행한다. 이 동안 DBWR은 메모리에 있는 모든
변경된 블록들을 데이터베이스의 데이터 파일에 기록한다.
(5) System Monitor Process(SMON)
시스템 모니터 프로세스는 많은 내부 작업을 수행하며, 그 가운데 어떤 것은 결코
실현되지 않을 수도 있다.
(6) Process Monitor Process(PMON)
사용자 접속은 네트워크나 그 밖의 이유로 갑자기 끊어질 수 있다. PMON은 못쓰게
된 세션의 트랜잭션을 롤백하여 방치된 접속을 지워 버리는 역할을 한다.
- Data Cashing
- 디스크 액세스를 최소화하여 컴퓨터 시스템의 퍼포먼스의 속도를 높이기 위하여,
애플리케이션은 보통 임시로 디스크에 저장된 데이터를 캐시(저장)하는 메모리 영역(RAM)을 만든다.
애플리케이션은 보통 임시로 디스크에 저장된 데이터를 캐시(저장)하는 메모리 영역(RAM)을 만든다.
○ 캐시 히트(Cache Hits) : 애플리케이션이 요청한 데이터가 캐시(메모리)에 있을때 발생
○ 캐시 미스(Cache Misses) : 애플리케이션이 요청한 데이터가 캐시(메모리)에 없을 때 발생하며 디스크 읽기가 발생한다.
○ 캐시 리로드(Cache Reloads) : 애플리케이션이 과거 캐시에 위치했었으나 그 이후 디스크로 내려간 데이터를 요청할 때 발생한다.
다시 디스크 읽기가 발생한다.
다시 디스크 읽기가 발생한다.
- MRU/LRU(Most-recently-used/Least-recently-used) 알고리즘
☞ 가장 최근에 사용된 데이터블록은 캐시에 넣어 두고, 거의 최근에 사용되지
않은 블록은 더 많은 공간이 필요할 때 다시 디스크에 기록하는 캐시 알고리즘
'DB' 카테고리의 다른 글
PL(Procedural Language)/SQL (0) | 2019.01.17 |
---|---|
SQL (0) | 2019.01.08 |
DW (0) | 2019.01.08 |
ORACLE의 기본구조3 (0) | 2019.01.02 |
ORACLE의 기본구조 (0) | 2018.12.31 |
Comments