두 방식 모두 indexes를 사용한다. 하지만 실시간으로 대용량 데이터 중 특정 데이터를 빠르게 찾아야하는 OLTP 방식은 index scans을 사용하고, 많은 데이터를 읽어야하는 OLAP 방식은 full table scans를 사용한다.
TPC-C로 벤치마킹을 돌려 데이터베이스의 성능을 평가한다. 먼저, 벤치마킹이 무엇이고 왜 필요할까?
벤치마킹은 특정 애플리케이션의 성능을 측정하고 다른 유사한 workloads와 비교함으로써 performance gap이 있는지 발견하고, 성능 자체를 증가시킨다.
벤치마크는 domain-specific하다. domian 별로 특화되어있기 때문에 범용성이 높은 벤치마크는 효용성이 떨어진다고 할 수 있다. 그러므로 벤치마크는
Relavant -> It should be meaningful within the target domain
Understandable/acceptable -> Vendors and users embrace it
Scalable/coverable -> It should not oversimplify the typical environment
이 세가지 특성을 가지고 있어야만 한다.
Database의 성능을 측정하기 위한 OLTP benchmark.
Throughput(처리율) of TPC-C = 분당 실행된 New-Order transaction의 수 => TpmC (Transactions per minute count)
5 types of well-defined transactions
New-Order (Read/Write)
고객이 새로운 주문을 요청했을 때 이에 대한 처리를 수행하는 비지니스 트랜잭션
Payment (Read/Write)
고객이 주문한 내용에 대하여 비용 지불을 하였을 때 이에 대한 처리를 수행하는 비지니스 트랜잭션
Delivery (Read/Write)
고객의 주문 사항에 대하여 일괄 처리를 수행하는 비지니스 트랜잭션임
Order-Status (Read Only)
고객의 주문이 어떻게 처리되고 있는지 상태 확인을 처리하는 비지니스 트랜잭션
Stock-Level (Read Only)
전체 보유 제품에 대한 재고 상태를 체크하여 적정 재고 수준에 미달하는 제품을 확인하는 비지니스 트랜잭션
Random I/O intensive workload : 65% reads, 35% write로 구성돼있다.
TPC-C benchmark를 실행하거나 data를 load할때 설정하는 Warehouse에 따라 나머지 8개의 테이블의 cardinality가 설정된다.
총 9개의 table을 위에서 정리한 5개의 transactions이 read/write하게된다.
Relation Access Pattern : Select / Insert / Update / Delete 를 정리한 표다.
위에서부터 차례로 살펴보자.
Reference
https://m.cafe.daum.net/juhj/9lUi/67