Set Query for Oracle 이우진, 이상협 숭실대학교 컴퓨터학과 June 2002
Database Systems Laboratory 2 목 차목 차목 차목 차 Set query 개요 Set query 개요 실험 환경 실험 환경 벤치마크 도구 벤치마크 도구 실험 결과 및 분석 실험 결과 및 분석
Database Systems Laboratory 3 Set Query 개요
Database Systems Laboratory 4 Set Query 개요 (1) 문서 검색, 직접 마케팅, 의사 결정 지원, 경영 보 고서 같은 전략적 가치 정보의 응용프로그램이 원 하는 결과를 $/QPS (Price per Queries Per Second) 로 얻을 수 있게 하여 제품에 대한 성능 평가를 할 목적으로 개발 문서 검색, 직접 마케팅, 의사 결정 지원, 경영 보 고서 같은 전략적 가치 정보의 응용프로그램이 원 하는 결과를 $/QPS (Price per Queries Per Second) 로 얻을 수 있게 하여 제품에 대한 성능 평가를 할 목적으로 개발 단일 사용자 환경 단일 사용자 환경 시험 대상 시스템 – 상용 관계형 데이터베이스 시험 대상 시스템 – 상용 관계형 데이터베이스
Database Systems Laboratory 5 Set Query 개요 (2) Set Query 개요 (2) 구성 구성 하나의 테이블 – bench 하나의 테이블 – bench 3 개 영역의 69 개 질의로 구성 3 개 영역의 69 개 질의로 구성 측정 요소 측정 요소 응답시간 - 1/1000 초 단위 응답시간 - 1/1000 초 단위 CPU 사용시간 - 1/1000 초 단위 CPU 사용시간 - 1/1000 초 단위 I/O 사용 - block 수 단위 I/O 사용 - block 수 단위
Database Systems Laboratory 6 Set Query 개요 (3) 질의 결과 출력 질의 결과 출력 각 질의의 결과를 사용자가 원하는 파일로 출력 각 질의의 결과를 사용자가 원하는 파일로 출력 $/QPS (Dollar Price per Query Per Second) $/QPS (Dollar Price per Query Per Second) P*T / 69 P*T / 69 P: 하드웨어와 소프트웨어 비용 P: 하드웨어와 소프트웨어 비용 T: 전체 질의를 수행하는데 소요된 시간 T: 전체 질의를 수행하는데 소요된 시간
Database Systems Laboratory 7 시험 테이블 – BENCH(1) 하나의 테이블 하나의 테이블 1,000,000 개 터플 1,000,000 개 터플 터플 크기 – 200 바이트 터플 크기 – 200 바이트 높은 기수성을 얻기 위해 일관된 방법하에 정수 배로 재구성 가능 높은 기수성을 얻기 위해 일관된 방법하에 정수 배로 재구성 가능 Ex) K500K, k250K 를 K5M, K2500K 로 바꾸어 KSEQ 가 10,000,000 까지 증가하게 하여 실험 수행 Ex) K500K, k250K 를 K5M, K2500K 로 바꾸어 KSEQ 가 10,000,000 까지 증가하게 하여 실험 수행
Database Systems Laboratory 8 시험 테이블 – BENCH(2) 13 개의 정수 인덱스 컬럼 13 개의 정수 인덱스 컬럼 기수성 (cardinality) – 2 ~ 500K (K2~K500K) 기수성 (cardinality) – 2 ~ 500K (K2~K500K) 무작위로 생성되어 다양한 값을 가지도록 12 개로 구성 무작위로 생성되어 다양한 값을 가지도록 12 개로 구성 KSEQ – 순서를 나타내는 정수 컬럼 KSEQ – 순서를 나타내는 정수 컬럼 크기 - 4 바이트 크기 - 4 바이트 8 개의 문자 컬럼 8 개의 문자 컬럼 데이터 저장시 압축되지 않도록 문자열 생성 데이터 저장시 압축되지 않도록 문자열 생성 ex) ‘ ’ ex) ‘ ’ 크기 - S1 (8 바이트 ), S2~S10 (20 바이트 ) 크기 - S1 (8 바이트 ), S2~S10 (20 바이트 )
Database Systems Laboratory 9 시험 테이블 – BENCH(3) 정수 인덱스 컬럼 KSEQ not null sequence[1,N] K500K random[1,N/2] K250K random[1,N/4] K100K random[1, ] K40K not null random[1, 40000] K10K not null random[1, 10000] K1K not null random[1, 1000] K100 not null random[1, 100] K25 not null random[1, 25] K10 not null random[1, 10] K5 not null random[1, 5] K4 not null random[1, 4] K2 not null random[1, 2] 문자 컬럼 S1 not null ‘ ’ S2 ~ S8 not null ‘ ’ N: 1,000,000(defaults size) 에 정수 배
Database Systems Laboratory 10 평가 질의 (1) 3 개 영역의 69 개 질의 3 개 영역의 69 개 질의 문서 검색 : Q1, Q2, Q4 문서 검색 : Q1, Q2, Q4 Q1 Count, Single Exact Match: 10 개 Q1 Count, Single Exact Match: 10 개 Q2 Count ANDing two Clauses: 18 개 Q2 Count ANDing two Clauses: 18 개 Q2A AND of two exact match conditions: 9 개 Q2A AND of two exact match conditions: 9 개 Q2B NOT of an exact match condition: 9 개 Q2B NOT of an exact match condition: 9 개 Q4 Multiple Condition Selection :15 개 Q4 Multiple Condition Selection :15 개 ANDing 3 match or range conditions: 8 개 ANDing 3 match or range conditions: 8 개 ANDing 5 match or range conditions: 7 개 ANDing 5 match or range conditions: 7 개
Database Systems Laboratory 11 평가 질의 (2) 직접 마케팅 : Q3 직접 마케팅 : Q3 Q3 Sum, Range and Match Clause: 14 개 Q3 Sum, Range and Match Clause: 14 개 Q3A single range selection, exact match: 7 개 Q3A single range selection, exact match: 7 개 Q3B OR of multiple range selection, exact match: 7 개 Q3B OR of multiple range selection, exact match: 7 개 의사 결정 지원, 경영 보고서 : Q5, Q6 의사 결정 지원, 경영 보고서 : Q5, Q6 Q5 Multiple column GROUP BY: 3 개 Q5 Multiple column GROUP BY: 3 개 Q6 Join Condition: 9 개 Q6 Join Condition: 9 개 Q6A exact match of the first table only: 5 개 Q6A exact match of the first table only: 5 개 Q6B exact match on both tables: 4 개 Q6B exact match on both tables: 4 개
Database Systems Laboratory 12 실험 환경
Database Systems Laboratory 13 하드웨어 및 소프트웨어 하드웨어 하드웨어 CPU : Pentium III 733MHz 1 개 CPU : Pentium III 733MHz 1 개 Main Memory : 512 MB Main Memory : 512 MB HDD : 18 GB 내장 HDD 1 개 HDD : 18 GB 내장 HDD 1 개 소프트웨어 소프트웨어 운영체제 : Redhat Linux 7.2 운영체제 : Redhat Linux 7.2 Compiler: GCC 2.96 Compiler: GCC 2.96 Oracle : Oracle 9i Oracle : Oracle 9i 9.0.1
Database Systems Laboratory 14 Oracle 9i 실험 환경 (1) 시스템 파라미터 시스템 파라미터 data_block_size: 8192 bytes(8KB) data_block_size: 8192 bytes(8KB) db_block_buffers: 6,000 blocks(48MB) db_block_buffers: 6,000 blocks(48MB) shared_pool_size: 16,384,000 bytes(16MB) shared_pool_size: 16,384,000 bytes(16MB) log_buffers : 524,288 bytes(512KB) log_buffers : 524,288 bytes(512KB) log_checkpoint_timeout: 1800 sec log_checkpoint_timeout: 1800 sec other parameters : 기본값 사용 other parameters : 기본값 사용
Database Systems Laboratory 15 Oracle 9i 실험 환경 (2) 데이터베이스 크기 데이터베이스 크기 Data tablespace: 1024MB Data tablespace: 1024MB Index tablespace: 1024MB Index tablespace: 1024MB Temporary tablespace: 1024MB Temporary tablespace: 1024MB 시험 대상 데이터 텍스트 크기 시험 대상 데이터 텍스트 크기 터플 수 1,000,000 개 - 210MB 터플 수 1,000,000 개 - 210MB
Database Systems Laboratory 16 Oracle 9i 실험 환경 (3) 질의 최적화 방법 질의 최적화 방법 비용 기반 질의 최적화 사용 비용 기반 질의 최적화 사용 시험 테이블에 대해 통계 갱신 시험 테이블에 대해 통계 갱신 ANALYZE TABLE 문 사용 ANALYZE TABLE 문 사용 Cold start 사용 Cold start 사용 하나의 질의 수행 후 메모리에 1GB 만큼 할당 한 후 다음 질의 수행 하나의 질의 수행 후 메모리에 1GB 만큼 할당 한 후 다음 질의 수행
Database Systems Laboratory 17 벤치마크 도구
Database Systems Laboratory 18 개요 작성 언어 : C 언어 작성 언어 : C 언어 DBMS Programming API DBMS Programming API OCI 사용 OCI 사용 데이터 벌크 로딩 도구 데이터 벌크 로딩 도구 Oracle 에서 제공하는 SQL*Loader 사용 Oracle 에서 제공하는 SQL*Loader 사용
Database Systems Laboratory 19 메뉴 구성 ******************************************** * The Set Query Benchmark Test * * The Set Query Benchmark Test ***************************************************************************************** * 1. DATA GENERATE (UniSQL, Oracle) * * 1. DATA GENERATE (UniSQL, Oracle) * * 2. TABLE CREATE AND LOAD * * 2. TABLE CREATE AND LOAD * * 3. START TEST * * 3. START TEST * * 4. DROP TABLE * * 4. DROP TABLE * * 5. QUIT * * 5. QUIT * * 6. CREATE DATABASE * * 6. CREATE DATABASE * * 7. DROP DATABASE * ******************************************** * 7. DROP DATABASE * ********************************************
Database Systems Laboratory 20 제어 흐름 메뉴 query 결과 파일 Create/Drop DB Create/Drop DB generate 자료 파일 데이터베이스 응답 시간 결과 테스트 수행 선택 데이터 생성 선택 파일 생성 데이터베이스 생성 / 삭제 선택 데이터베이스 생성 / 삭제 SQL*LOADER 벌크 로딩 Create/Drop table Create/Drop table 인덱스 생성 / 테이블 통계정보 생성 테이블 생성 / 삭제 선택 각 트랜잭션 수행 결과 파일 질의 결과
Database Systems Laboratory 21 데이터 생성 pseudo-random number generator PROCEDURE FIELDVGEN()/* Procedure to generate indexed field values */ INTEGER I, J; /* Looping Variables */ DOUBLE SEED INIT (1.); /* Seed For Random Number Generation */ INTEGER ARRAY COLVAL(1:12), /* Array to hold one row of values */ COLCARD(1:12) /* Array holding largest value in each field */ INIT (500000,250000,100000,40000,10000,1000,100,25,10,5,4,2);/* Initialize */ FOR I FROM 1 TO ; /* One Million Rows */ FOR J FROM 1 TO 12; /* Twelve randomly generated column values */ SEED = MOD( D * SEED, D); /* I.E.: Si+1 = (7**5 * Si ) MOD (2**31-1), where Si is SEED, a random # */ COLVAL(J) = MOD(SEED, COLCARD(J) )+1; /* Generate next column value */ END FOR J /* Row complete */ PRINT COLVAL VALUES FOR THIS ROW TO OUTPUT;/*Output row's values*/ END FOR I /* We have generated One Million Rows */ END
Database Systems Laboratory 22 데이터 벌크 로딩 결과 로딩 시간 초 (14 분 10 초 ) CPU 사용 시간 초 (1 분 31 초 ) BENCH 테이블 크기 29,416 blocks (240,975,872 bytes)
Database Systems Laboratory 23 실험 결과
Database Systems Laboratory 24 Count, Single Exact Match – Q1 Q1: Count,Single Exact Match Q1: Count,Single Exact Match SELECT COUNT(*) FROM BENCH SELECT COUNT(*) FROM BENCH WHERE KN = 2; KN ε {KSEQ, K100K, …, K4, K2} KN ε {KSEQ, K100K, …, K4, K2} 수행 계획 수행 계획 INDEX RANGE SCAN – KSEQ, K100K, K10K, K1K, K100,K25, K10 INDEX RANGE SCAN – KSEQ, K100K, K10K, K1K, K100,K25, K10 INDEX FAST FULL SCAN – K5, K4, K2 INDEX FAST FULL SCAN – K5, K4, K2
Database Systems Laboratory 25 Count, Single Exact Match – Q1 Q1 ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read KSEQ 1회1회1회1회 회2회2회2회 회3회3회3회 K100K 1회1회1회1회 회2회2회2회 회3회3회3회
Database Systems Laboratory 26 Count, Single Exact Match – Q1 Q1 ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K10K 1회1회1회1회 회2회2회2회 회3회3회3회 K1K 1회1회1회1회 회2회2회2회 회3회3회3회
Database Systems Laboratory 27 Count, Single Exact Match – Q1 Q1 ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K100 1회1회1회1회 회2회2회2회 회3회3회3회 K25 1회1회1회1회 회2회2회2회 회3회3회3회
Database Systems Laboratory 28 Count, Single Exact Match – Q1 Q1 ColdNo-cold Elapsed time CPU time Logical read Physical read Elapse d time CPU time Logical read Physic al read K10 1회1회1회1회 회2회2회2회 회3회3회3회 K5 1회1회1회1회 ,9741, ,9741,960 2회2회2회2회 ,9741, ,9741,960 3회3회3회3회 ,9741, ,9761,960
Database Systems Laboratory 29 Count, Single Exact Match – Q1 Q1 ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physica l read K4 1회1회1회1회 ,9711, ,9711,960 2회2회2회2회 ,9711, ,9711,960 3회3회3회3회 ,9711, ,9711,960 K2 1회1회1회1회 ,9711, ,9711,960 2회2회2회2회 ,9711, ,9711,960 3회3회3회3회 ,9711, ,9711,960
Database Systems Laboratory 30 Count ANDing two Clauses – Q2 Q2: Count AND ing Two Clauses Q2: Count AND ing Two Clauses Q2A: AND of two exact match conditions Q2A: AND of two exact match conditions SELECT COUNT(*) FROM BENCH SELECT COUNT(*) FROM BENCH WHERE K2 = 2 AND KN = 3; KN ε {KSEQ, K100K, …, K4} KN ε {KSEQ, K100K, …, K4} 수행 계획 수행 계획 1. INDEX RANGE SCAN: KN 1. INDEX RANGE SCAN: KN 2. INDEX RANGE SCAN: K2 2. INDEX RANGE SCAN: K2
Database Systems Laboratory 31 Count ANDing two Clauses – Q2 Q2A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read KSEQ 1회1회1회1회 회2회2회2회 회3회3회3회 K100K 1회1회1회1회 회2회2회2회 회3회3회3회
Database Systems Laboratory 32 Count ANDing two Clauses – Q2 Q2A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapse d time CPU time Logical read Physical read K10K 1회1회1회1회 회2회2회2회 회3회3회3회 K1K 1회1회1회1회 회2회2회2회 회3회3회3회
Database Systems Laboratory 33 Count ANDing two Clauses – Q2 Q2A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapse d time CPU time Logical read Physical read K100 1회1회1회1회 , , 회2회2회2회 , , 회3회3회3회 , ,00119 K25 1회1회1회1회 , , 회2회2회2회 , , 회3회3회3회 , ,06078
Database Systems Laboratory 34 Count ANDing two Clauses – Q2 Q2A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K10 1회1회1회1회 , , 회2회2회2회 , , 회3회3회3회 , , K5 1회1회1회1회 , ,3730 2회2회2회2회 , ,3730 3회3회3회3회 , ,3730
Database Systems Laboratory 35 Count ANDing two Clauses – Q2 Q2A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K4 1회1회1회1회 , ,4700 2회2회2회2회 , ,4700 3회3회3회3회 , ,4700
Database Systems Laboratory 36 Count ANDing two Clauses – Q2 Q2: Count AND ing Two Clauses Q2: Count AND ing Two Clauses Q2B: NOT of an exact match conditions Q2B: NOT of an exact match conditions SELECT COUNT(*) FROM BENCH SELECT COUNT(*) FROM BENCH WHERE K2 = 2 AND NOT KN = 3; KN ε {KSEQ, K100K, …, K4} KN ε {KSEQ, K100K, …, K4} 수행 계획 수행 계획 1. INDEX RANGE SCAN: K2 1. INDEX RANGE SCAN: K2 2. INDEX RANGE SCAN: KN 2. INDEX RANGE SCAN: KN
Database Systems Laboratory 37 Count ANDing two Clauses – Q2 Q2B ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read KSEQ 1회1회1회1회 회2회2회2회 회3회3회3회 K100K 1회1회1회1회 회2회2회2회 회3회3회3회
Database Systems Laboratory 38 Count ANDing two Clauses – Q2 Q2B ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K10K 1회1회1회1회 회2회2회2회 회3회3회3회 K1K 1회1회1회1회 회2회2회2회 회3회3회3회
Database Systems Laboratory 39 Count ANDing two Clauses – Q2 Q2B ColdNo-cold Elapsed time CPU time Logical read Physical read Elapse d time CPU time Logical read Physica l read K100 1회1회1회1회 , ,0010 2회2회2회2회 , ,0010 3회3회3회3회 , ,0010 K25 1회1회1회1회 , ,0600 2회2회2회2회 , 회3회3회3회 , ,0600
Database Systems Laboratory 40 Count ANDing two Clauses – Q2 Q2B ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K10 1회1회1회1회 , ,1770 2회2회2회2회 , ,1770 3회3회3회3회 , ,1770 K5 1회1회1회1회 , ,3730 2회2회2회2회 , ,3730 3회3회3회3회 , ,3730
Database Systems Laboratory 41 Count ANDing two Clauses – Q2 Q2B ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K4 1회1회1회1회 , ,4700 2회2회2회2회 , ,4700 3회3회3회3회 , ,4700
Database Systems Laboratory 42 Sum, Range and Match – Q3 Q3: Sum, Range and Match Clause Q3: Sum, Range and Match Clause Q3A: the values of an integer binary column Q3A: the values of an integer binary column SELECT SUM(K1K) FROM BENCH SELECT SUM(K1K) FROM BENCH WHERE KSEQ BETWEEN AND AND KN = 3; KN ε {K100K, …, K4} KN ε {K100K, …, K4} 수행 계획 수행 계획 One time index One time index INDEX KN RANGE SCAN – K100K, K10K INDEX KN RANGE SCAN – K100K, K10K INDEX KSEQ RANGE SCAN – K10, K5, K4 INDEX KSEQ RANGE SCAN – K10, K5, K4 Two times indexes – K100, K25 Two times indexes – K100, K25 1. INDEX RANGE SCAN: KN 1. INDEX RANGE SCAN: KN 2. INDEX RANGE SCAN: KSEQ 2. INDEX RANGE SCAN: KSEQ
Database Systems Laboratory 43 Sum, Range and Match – Q3 Q3A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K100K 1회1회1회1회 회2회2회2회 회3회3회3회 K10K 1회1회1회1회 회2회2회2회 회3회3회3회
Database Systems Laboratory 44 Sum, Range and Match – Q3 Q3A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K100 1회1회1회1회 ,1601, ,3501,298 2회2회2회2회 ,2071, ,2261,294 3회3회3회3회 ,9731, ,2121,293 K25 1회1회1회1회 ,4831, ,4831,743 2회2회2회2회 ,4831, ,4831,743 3회3회3회3회 ,4831, ,4831,743
Database Systems Laboratory 45 Sum, Range and Match – Q3 Q3A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapse d time CPU time Logical read Physica l read K10 1회1회1회1회 , , 회2회2회2회 , , 회3회3회3회 , , K5 1회1회1회1회 , ,1680 2회2회2회2회 , ,1680 3회3회3회3회 , ,1680
Database Systems Laboratory 46 Sum, Range and Match – Q3 Q3A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K4 1회1회1회1회 , ,1680 2회2회2회2회 , ,1680 3회3회3회3회 ,
Database Systems Laboratory 47 Sum, Range and Match – Q3 Q3: Sum, Range and Match Clause Q3: Sum, Range and Match Clause Q3B: OR Q3B: OR SELECT SUM(K1K) FROM BENCH SELECT SUM(K1K) FROM BENCH WHERE (KSEQ BETWEEN AND OR KSEQ BETWEEN AND OR KSEQ BETWEEN AND OR KSEQ BETWEEN AND OR KSEQ BETWEEN AND ) AND KN = 3; KN ε {K100K, …, K4} KN ε {K100K, …, K4}
Database Systems Laboratory 48 Sum, Range and Match – Q3 수행 계획 수행 계획 K100K, K10K - INDEX KN RANGE SCAN K100K, K10K - INDEX KN RANGE SCAN K100, K25 K100, K25 INDEX KN RANGE SCAN INDEX KN RANGE SCAN INDEX KSEQ RANGE SCAN – five times INDEX KSEQ RANGE SCAN – five times K10, K5, K4 K10, K5, K4 INDEX KSEQ RANGE SCAN – five times INDEX KSEQ RANGE SCAN – five times
Database Systems Laboratory 49 Sum, Range and Match – Q3 Q3B ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K100K 1회1회1회1회 회2회2회2회 회3회3회3회 K10K 1회1회1회1회 회2회2회2회 회3회3회3회
Database Systems Laboratory 50 Sum, Range and Match – Q3 Q3B ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K100 1회1회1회1회 회2회2회2회 회3회3회3회 K25 1회1회1회1회 , , 회2회2회2회 , , 회3회3회3회 , ,53240
Database Systems Laboratory 51 Sum, Range and Match – Q3 Q3B ColdNo-cold Elapsed time CPU time Logical read Physical read Elapse d time CPU time Logical read Physica l read K10 1회1회1회1회 , ,9180 2회2회2회2회 , ,9180 3회3회3회3회 , ,9180 K5 1회1회1회1회 , ,9180 2회2회2회2회 , ,9180 3회3회3회3회 , ,9180
Database Systems Laboratory 52 Sum, Range and Match – Q3 Q3B ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K4 1회1회1회1회 , ,9180 2회2회2회2회 , ,9180 3회3회3회3회 , ,9180
Database Systems Laboratory 53 Multiple Condition Selection – Q4 Q4: Multiple Condition Selection Q4: Multiple Condition Selection Q4A: ANDing 3 Q4A: ANDing 3 SELECT KSEQ, K500K FROM BENCH SELECT KSEQ, K500K FROM BENCH WHERE constraint with 3 conditions; Condition Sequence Condition Sequence (1) K2 =1(2) k100 > 80 (3) K10K BETWEEN 2000 AND 3000(4) K5 = 3 (5) K25 IN (11, 19)(6) K4 = 3 (7) K100 < 41 (8) K1K BETWEEN 850 AND 950 (9) K10 = 7(10) K25 IN (3, 4)
Database Systems Laboratory 54 Multiple Condition Selection – Q4 수행 계획 수행 계획 (1)~(3), (6)~(8) - TABLE FULL SCAN (1)~(3), (6)~(8) - TABLE FULL SCAN INDEX K25 RANGE SCAN – two times INDEX K25 RANGE SCAN – two times Query contain (5), (10) condition Query contain (5), (10) condition (3)~(5), (4)~(6), (5)~(7), (8)~(10) (3)~(5), (4)~(6), (5)~(7), (8)~(10) INDEX RANGE SCAN in order high selectivity INDEX RANGE SCAN in order high selectivity
Database Systems Laboratory 55 Multiple Condition Selection – Q4 Q4A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read 1~3 1회1회1회1회 ,30726, ,30726,376 2회2회2회2회 ,30726, ,30726,376 3회3회3회3회 ,30726, ,30726,376 2~4 1회1회1회1회 ,7195, ,1365,153 2회2회2회2회 ,2435, ,9615,149 3회3회3회3회 ,2935, ,1265,154
Database Systems Laboratory 56 Multiple Condition Selection – Q4 Q4A ColdNo-cold Elapsed time CPU time Logical read Physic al read Elapse d time CPU time Logical read Physical read 3~5 1회1회1회1회 ,3992, ,3991,981 2회2회2회2회 ,3991, ,3992,011 3회3회3회3회 ,3992, ,3992,011 4~6 1회1회1회1회 ,9383, ,9383,275 2회2회2회2회 ,9383, ,9382,982 3회3회3회3회 ,9383, ,9382,983
Database Systems Laboratory 57 Multiple Condition Selection – Q4 Q4A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapse d time CPU time Logical read Physical read 5~7 1회1회1회1회 ,26613, ,26613,195 2회2회2회2회 ,26613, ,26613,487 3회3회3회3회 ,26613, ,26613,305 6~8 1회1회1회1회 ,39422, ,39422,555 2회2회2회2회 ,39422, ,39422,614 3회3회3회3회 ,39422, ,39422,550
Database Systems Laboratory 58 Multiple Condition Selection – Q4 Q4A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read 7~9 1회1회1회1회 ,1728, ,1728,436 2회2회2회2회 ,1728, ,1728,453 3회3회3회3회 ,1728, ,1728,433 8~10 1회1회1회1회 ,3671, ,3671,421 2회2회2회2회 ,3671, ,3671,339 3회3회3회3회 ,3671, ,3671,421
Database Systems Laboratory 59 Multiple Condition Selection – Q4 Q4: Multiple Condition Selection Q4: Multiple Condition Selection Q4B: ANDing 5 Q4B: ANDing 5 SELECT KSEQ, K500K FROM BENCH SELECT KSEQ, K500K FROM BENCH WHERE constraint with 5 conditions; Condition Sequence Condition Sequence (1) K2 =1(2) k100 > 80 (3) K10K BETWEEN 2000 AND 3000(4) K5 = 3 (5) K25 IN (11, 19)(6) K4 = 3 (7) K100 < 41 (8) K1K BETWEEN 850 AND 950 (9) K10 = 7(10) K25 IN (3, 4)
Database Systems Laboratory 60 Multiple Condition Selection – Q4 수행 계획 수행 계획 INDEX K25 RANGE SCAN – two times INDEX K25 RANGE SCAN – two times Query contain (5), (10) condition Query contain (5), (10) condition INDEX RANGE SCAN in order high selectivity INDEX RANGE SCAN in order high selectivity
Database Systems Laboratory 61 Multiple Condition Selection – Q4 Q4B ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read 1~5 1회1회1회1회 ,5321, ,5322,057 2회2회2회2회 ,5321, ,5322,094 3회3회3회3회 ,5321, ,5321,960 2~6 1회1회1회1회 , , 회2회2회2회 , , 회3회3회3회 , ,656886
Database Systems Laboratory 62 Multiple Condition Selection – Q4 Q4B ColdNo-cold Elapsed time CPU time Logical read Physic al read Elapse d time CPU time Logical read Physical read 3~7 1회1회1회1회 , , 회2회2회2회 , , 회3회3회3회 , , ~8 1회1회1회1회 , , 회2회2회2회 , , 회3회3회3회 , ,655680
Database Systems Laboratory 63 Multiple Condition Selection – Q4 Q4B ColdNo-cold Elapsed time CPU time Logical read Physical read Elapse d time CPU time Logical read Physical read 5~9 1회1회1회1회 ,7471, ,7471,550 2회2회2회2회 ,7471, ,7471,568 3회3회3회3회 ,7471, ,7471,556 6~10 1회1회1회1회 ,7891, ,7891,689 2회2회2회2회 ,7891, 회3회3회3회 ,7891,
Database Systems Laboratory 64 Multiple Condition Selection – Q4 Q4B ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read 7~1 1회1회1회1회 , , 회2회2회2회 , , 회3회3회3회 , ,362704
Database Systems Laboratory 65 Multiple Column GROUP BY – Q5 Q5: Multiple Column GROUP BY Q5: Multiple Column GROUP BY SELECT KN1, KN2, COUNT(*) FROM BENCH SELECT KN1, KN2, COUNT(*) FROM BENCH GROUP BY KN1, KN2; (KN1, KN2) ε { (K2, K100), (K10, K25), (K10, K25) } (KN1, KN2) ε { (K2, K100), (K10, K25), (K10, K25) } 수행 계획 수행 계획 TABLE FULL SCAN TABLE FULL SCAN
Database Systems Laboratory 66 Multiple Column GROUP BY – Q5 Q5 ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K2,K100 1회1회1회1회 ,42823, ,42824,632 2회2회2회2회 ,42823, ,42825,072 3회3회3회3회 ,42823, ,42824,489 K4,K25 1회1회1회1회 ,42823, ,42823,112 2회2회2회2회 ,42823, ,42823,197 3회3회3회3회 ,42823, ,42823,269
Database Systems Laboratory 67 Multiple Column GROUP BY – Q5 Q3A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapse d time CPU time Logical read Physical read K10,K25 1회1회1회1회 ,42823, ,42823,112 2회2회2회2회 ,42823, ,42823,197 3회3회3회3회 ,42823, ,42823,269
Database Systems Laboratory 68 Multiple Condition Selection – Q6 Q6: Multiple Condition Selection Q6: Multiple Condition Selection Q6A: equality condition limiting the rows of the first table only Q6A: equality condition limiting the rows of the first table only SELECT COUNT(*) FROM BENCH B1, BENCH B2 SELECT COUNT(*) FROM BENCH B1, BENCH B2 WHERE B1.KN = 49 AND B1.K250K = B2.K500K; KN1 ε { K100K, K40K, K10K, K1K, K100 } KN1 ε { K100K, K40K, K10K, K1K, K100 }
Database Systems Laboratory 69 Multiple Condition Selection – Q6 수행 계획 수행 계획 K100K, K40K, K10K K100K, K40K, K10K NESTED LOOPS NESTED LOOPS 1. INDEX RANGE SCAN: KN 1. INDEX RANGE SCAN: KN 2. INDEX RANGE SCAN: K500K 2. INDEX RANGE SCAN: K500K K1K K1K HASH JOIN HASH JOIN 1. INDEX RANGE SCAN: K1K 1. INDEX RANGE SCAN: K1K 2. INDEX FAST FULL SCAN: K500K 2. INDEX FAST FULL SCAN: K500K K100 K100 HASH JOIN HASH JOIN 1. INDEX RANGE SCAN: K INDEX RANGE SCAN: K INDEX FAST FULL SCAN: K250K 2. INDEX FAST FULL SCAN: K250K 3. INDEX FAST FULL SCAN: K500K 3. INDEX FAST FULL SCAN: K500K
Database Systems Laboratory 70 Multiple Condition Selection – Q6 Q5 ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K100K 1회1회1회1회 회2회2회2회 회3회3회3회 K40K 1회1회1회1회 회2회2회2회 회3회3회3회
Database Systems Laboratory 71 Multiple Condition Selection – Q6 Q5 ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K10K 1회1회1회1회 회2회2회2회 회3회3회3회 K1K 1회1회1회1회 ,2292, ,2292,876 2회2회2회2회 ,2292, ,2292,875 3회3회3회3회 ,2292, ,2292,884
Database Systems Laboratory 72 Multiple Condition Selection – Q6 Q3A ColdNo-cold Elapsed time CPU time Logical read Physical read Elapse d time CPU time Logical read Physical read K100 1회1회1회1회 ,5034, ,5034,484 2회2회2회2회 ,5034, ,2741,609 3회3회3회3회 ,5034, ,2741,600
Database Systems Laboratory 73 Multiple Condition Selection – Q6 Q6: Multiple Condition Selection Q6: Multiple Condition Selection Q6B: equality conditions limit the rows on both tables Q6B: equality conditions limit the rows on both tables SELECT B1.KSEQ, B2.KSEQ FROM BENCH B1, BENCH B2 SELECT B1.KSEQ, B2.KSEQ FROM BENCH B1, BENCH B2 WHERE B1.KN = 99 AND B1.K250K = B2.K500K AND B2.K25 = 19; KN1 ε { K40K, K10K, K1K, K100 } KN1 ε { K40K, K10K, K1K, K100 }
Database Systems Laboratory 74 Multiple Condition Selection – Q6 수행 계획 수행 계획 K100K, K40K, K10K, K1K K100K, K40K, K10K, K1K NESTED LOOPS NESTED LOOPS 1. INDEX RANGE SCAN: KN 1. INDEX RANGE SCAN: KN 2. INDEX RANGE SCAN: K500K 2. INDEX RANGE SCAN: K500K K100 K100 HASH JOIN HASH JOIN TABLE FULL SCAN – two times TABLE FULL SCAN – two times
Database Systems Laboratory 75 Multiple Condition Selection – Q6 Q5 ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K100K 1회1회1회1회 회2회2회2회 회3회3회3회 K40K 1회1회1회1회 회2회2회2회 회3회3회3회
Database Systems Laboratory 76 Multiple Condition Selection – Q6 Q5 ColdNo-cold Elapsed time CPU time Logical read Physical read Elapsed time CPU time Logical read Physical read K1K 1회1회1회1회 ,0702, ,3922,598 2회2회2회2회 ,0702, ,0702,909 3회3회3회3회 ,0702, ,0702,911 K100 1회1회1회1회 ,24648, ,24648,141 2회2회2회2회 ,24648, ,17645,403 3회3회3회3회 ,24648, ,24648,404
Database Systems Laboratory 77 결 론 (1) $/QPS (Price per Queries Per Second) $/QPS (Price per Queries Per Second) 실험에 사용한 하드웨어 및 소프트웨어 가격정 보 불충분으로 제시하지 못함 실험에 사용한 하드웨어 및 소프트웨어 가격정 보 불충분으로 제시하지 못함 수행 결과 수행 결과 질의 수행 결과를 파일로 제공 질의 수행 결과를 파일로 제공 질의 수행 시 응답시간, CPU 사용시간, 논리적 / 물리적 읽기 블록 수의 결과를 질의당 파일에 기록하여 제공 질의 수행 시 응답시간, CPU 사용시간, 논리적 / 물리적 읽기 블록 수의 결과를 질의당 파일에 기록하여 제공
Database Systems Laboratory 78 결 론 (2) 질의 수행 결과 검증 질의 수행 결과 검증 Set Query 논문 부록 A 의 결과와 동일한 결과 Set Query 논문 부록 A 의 결과와 동일한 결과 Set Query 논문의 데이터 생성기 알고리즘으로 구 현한 데이터의 올바름을 입증 Set Query 논문의 데이터 생성기 알고리즘으로 구 현한 데이터의 올바름을 입증 시스템 통계 시스템 통계 CPU 사용시간, 논리적 / 물리적 읽기 블록 수 CPU 사용시간, 논리적 / 물리적 읽기 블록 수 Set Query 논문에서는 DBMS 제공 툴 사용 수집 Set Query 논문에서는 DBMS 제공 툴 사용 수집 Oralce 9i 에서 제공하는 view 테이블 이용 수집 Oralce 9i 에서 제공하는 view 테이블 이용 수집