Presentation is loading. Please wait.

Presentation is loading. Please wait.

Implementation of Set Query with UniSQL 2002. 6 이학찬, 류문수 숭실대학교 컴퓨터학과

Similar presentations


Presentation on theme: "Implementation of Set Query with UniSQL 2002. 6 이학찬, 류문수 숭실대학교 컴퓨터학과"— Presentation transcript:

1 Implementation of Set Query with UniSQL 2002. 6 이학찬, 류문수 숭실대학교 컴퓨터학과 hclee@realtime.ssu.ac.kr, moonsuda@dreamwiz.com

2 2Set Query Introduction (1) Set Query Set Query 마케팅 정보 시스템, 의사결정 지원 시스템, 경영 보고, 직 접 마케팅과 같은 전략적 가치 정보 어플리케이션에서 원 하는 결과를 $/QPS (Price per Queries Per Second) 로 얻 을 수 있게 하여 제품에 대한 성능 평가를 할 목적으로 개 발되었다. 마케팅 정보 시스템, 의사결정 지원 시스템, 경영 보고, 직 접 마케팅과 같은 전략적 가치 정보 어플리케이션에서 원 하는 결과를 $/QPS (Price per Queries Per Second) 로 얻 을 수 있게 하여 제품에 대한 성능 평가를 할 목적으로 개 발되었다. 단일 사용자용 성능 평가이며 시험 대상 시스템은 관계형 데이터베이스이다. 단일 사용자용 성능 평가이며 시험 대상 시스템은 관계형 데이터베이스이다. 시험에 사용되는 테이블은 “BENCH” 하나 이고, 이 테이 블에는 13 개의 숫자형 칼럼 (4 byte) 과 8 개의 문자형 칼럼 으로 이루어져 있다. 시험에 사용되는 테이블은 “BENCH” 하나 이고, 이 테이 블에는 13 개의 숫자형 칼럼 (4 byte) 과 8 개의 문자형 칼럼 으로 이루어져 있다.

3 3Set Query Introduction (2) Performance Metrics Performance Metrics 각 질의에 대해서 elapsed 시간, CPU 시간, I/O 사용에 대 해서 측정한다. 각 질의에 대해서 elapsed 시간, CPU 시간, I/O 사용에 대 해서 측정한다. $/QPS (Dollar Price per Query Per Second) $/QPS (Dollar Price per Query Per Second) P*T / 69 P*T / 69 P: 하드웨어와 소프트웨어 비용 P: 하드웨어와 소프트웨어 비용 T: 전체 질의를 수행하는데 소요된 시간 T: 전체 질의를 수행하는데 소요된 시간 Output Formatting Output Formatting 각 질의의 결과는 사용자가 원하는 파일로 출력 가능한 형태로 출력한다. 각 질의의 결과는 사용자가 원하는 파일로 출력 가능한 형태로 출력한다. Index Index KSEQ, K500K, …, K2 칼럼에 대해서는 모두 인덱스를 생성하도록 한다. KSEQ, K500K, …, K2 칼럼에 대해서는 모두 인덱스를 생성하도록 한다.

4 4Set Query Bench Table ColumnColumn KSEQ not null sequence[1,N]K4 random[1,4] K500K random[1,N/2]K2 random[1,2] K250K random[1,N/4]S1 “12345678” K100K not null random[1,100000]S2 “12345678900987654321” K40K not null random[1,40000]S3 “12345678900987654321” K10K not null random[1,10000]S4 “12345678900987654321” K1K not null random[1,1000]S5 “12345678900987654321” K100 not null random[1,100]S6 “12345678900987654321” K25 not null random[1,25]S7 “12345678900987654321” K10 not null random[1,10]S8 “12345678900987654321” K5 not null random[1,5] N: 1 백만 행 (defaults size) 에 정수 배 N: 1 백만 행 (defaults size) 에 정수 배 각 튜플의 크기 : 200 bytes 각 튜플의 크기 : 200 bytes

5 5Set Query Queries (1) 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} 질의 수 : 10 질의 수 : 10 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} 질의 수 : 9 질의 수 : 9

6 6Set Query Queries (2) 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} 질의 수 : 9 질의 수 : 9 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 400000 AND 500000 AND KN = 3; KN ε {K100K, …, K4} KN ε {K100K, …, K4} 질의 수 : 7 질의 수 : 7

7 7Set Query Queries (3) Q3B: OR Q3B: OR SELECT SUM(K1K) FROM BENCH SELECT SUM(K1K) FROM BENCH WHERE (KSEQ BETWEEN 400000 AND 410000 OR KSEQ BETWEEN 420000 AND 430000 OR KSEQ BETWEEN 440000 AND 450000 OR KSEQ BETWEEN 460000 AND 470000 OR KSEQ BETWEEN 480000 AND 500000) AND KN = 3; KN ε {K100K, …, K4} KN ε {K100K, …, K4} 질의 수 : 7 질의 수 : 7

8 8Set Query Queries (4) 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 or 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) 질의 수 : 8 질의 수 : 8

9 9Set Query Queries (5) Q4B: ANDing 5 Q4B: ANDing 5 SELECT KSEQ, K500K FROM BENCH SELECT KSEQ, K500K FROM BENCH WHERE constraint with (3 or 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) 질의 수 : 7 질의 수 : 7

10 10Set Query Queries (6) 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) } 질의 수 : 3 질의 수 : 3 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 } 질의 수 : 5 질의 수 : 5

11 11Set Query Queries (7) 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 } 질의 수 : 4 질의 수 : 4

12 12Set Query Data Generation 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 1000000; /* One Million Rows */ FOR J FROM 1 TO 12; /* Twelve randomly generated column values */ SEED = MOD(16807.0D * SEED, 2147483647.0D); /* 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

13 13Set Query System environment Hardware Hardware CPU: Pentium III 733MHz CPU: Pentium III 733MHz RAM: 512MB RAM: 512MB HDD: 18GB HDD: 18GB Software Software 운영체제 : Red Hat linux 7.2 (kernel 2.4.7) 운영체제 : Red Hat linux 7.2 (kernel 2.4.7) 컴파일러 : GCC 2.96 컴파일러 : GCC 2.96 UniSQL: UniSQL5.1 Patch1 UniSQL: UniSQL5.1 Patch1

14 14Set Query UniSQL Parameter page_size = 4,096 bytes page_size = 4,096 bytes num_data_buffers = 25000 pages num_data_buffers = 25000 pages num_log_buffers = 25000 pages num_log_buffers = 25000 pages checkpoint_interval_minutes = 180 minutes checkpoint_interval_minutes = 180 minutes

15 15Set Query Query Optimization UniSQL 은 비용 기반 최적화 방법 (cost based query optimization) 을 제공함. UniSQL 은 비용 기반 최적화 방법 (cost based query optimization) 을 제공함. 인덱스 생성 후 최적화 수행 인덱스 생성 후 최적화 수행 “UPDATE STATISTICS ON ALL CLASSES” “UPDATE STATISTICS ON ALL CLASSES”

16 16Set Query Statistics gathered Elapsed time Elapsed time 시스템이 질의 처리를 위해서 사용한 모든 경과 시간 시스템이 질의 처리를 위해서 사용한 모든 경과 시간 CPU time CPU time 시스템이 질의 처리를 위해서 사용한 CPU 사용 시간 시스템이 질의 처리를 위해서 사용한 CPU 사용 시간 I/O I/O 시스템이 질의 처리를 위해서 사용한 물리적인 블록 수 시스템이 질의 처리를 위해서 사용한 물리적인 블록 수 Unix/Linux 운영체제의 “iostat” 명령어의 결과 값을 이용 Unix/Linux 운영체제의 “iostat” 명령어의 결과 값을 이용

17 17Set Query Result (1) ElapsedCPUBlock InBlock Out Q1 Q1 Avg.3.5493.5156,882349 1회1회 3.5313.4976,848352 2회2회3.5433.5106,888344 3회3회3.5733.5406,912352 Q2 Avg.4.2993.6588,938344 1회1회 4.2803.6748,456344 2회2회4.3073.6419,224344 3회3회4.3113.6619,136344 Q3 Avg.5.0094.43312,480285 1회1회4.7974.41512,520240 2회2회5.1594.48512,560344 3회3회5.0714.39912,360272 Q4 5.0094.43312,480285 1회1회 8.514 7.794 35,920 240 2회2회8.3327.70935,896240 3회3회8.4877.80935,928240

18 18Set Query Result (2) ElapsedCPUBlock InBlock Out Q1 Q5 Avg.14.61913.954350,472373 1회1회 13.62512.993348,216216 2회2회16.61215.922354,328704 3회3회13.62012.948348,872200 Q6 Avg.9.1668.691609,133144 1회1회 13.695 13.004609,208 240 2회2회13.75513.092609,160192 3회3회13.74512.983609,032240 Q7 Avg.9.2288.788611,114192 1회1회 13.892 13.202 611,184192 2회2회14.03013.368611,144192 3회3회13.65612.996611,016192 Q8 Avg.15.29814.608614,242208 1회1회 17.60516.899617,496240 2회2회14.38313.625613,152192 3회3회13.90713.300612,080192

19 19Set Query Result (3) ElapsedCPUBlock InBlock Out Q1 Q9 Avg.14.27813.615613,485192 1회1회14.24713.573613,544192 2회2회14.44313.757613,536192 3회3회14.14613.516613,376192 Q10 15.94415.258619,088208 1회1회14.74714.057617,392192 2회2회18.38317.687622,648240 3회3회14.70214.030617,224192 Q2A Q11 4.4213.79210,344344 1회1회4.4323.81610,312344 2회2회4.4913.78410,360344 3회3회4.3423.77710,360344 Q12 4.4643.85810,013317 1회1회4.5663.90610,160344 2회2회4.2593.7919,648264 3회3회4.5693.87910,232344

20 20Set Query Result (4) ElapsedCPUBlock InBlock Out Q2A Q13 Avg.5.1464.43012,549285 1회1회5.2064.49812,560344 2회2회5.1144.36412,552240 3회3회5.1194.42912,536272 Q14 14.75414.048617,240192 1회1회14.75714.100617,344192 2회2회14.82014.056617,168192 3회3회14.68513.988617,208192 Q15 14.72414.020617,162192 1회1회14.76514.034617,200192 2회2회14.73614.026617,112192 3회3회14.67214.001617,176192 Q16 14.82414.105617,178192 1회1회14.81314.081617,200192 2회2회14.87314.127617,160192 3회3회14.78614.109617,176192

21 21Set Query Result (5) ElapsedCPUBlock InBlock Out Q2A Q17 Avg.13.91713.206611,042208 1회1회13.94013.238611,144192 2회2회13.89313.182610,960192 3회3회13.91813.199611,024240 Q18 14.18313.494612,874192 1회1회14.29213.597613,080192 2회2회14.14313.446612,480192 3회3회14.11613.439613,064192 Q19 14.06313.555613,312202 1회1회14.05113.531613,304192 2회2회14.21913.679613,352224 3회3회13.91913.456613,280192 Q2BQ20 14.76414.113617,026192 1회1회14.78714.130617,088192 2회2회14.80414.140616,960192 3회3회14.70314.072617,032192

22 22Set Query Result (6) ElapsedCPUBlock InBlock Out Q2B Q21 Avg.14.80714.105617,106192 1회1회14.81414.100617,072192 2회2회14.89414.181617,096192 3회3회14.71514.036617,152192 Q22 15.67514.873618,064208 1회1회14.77014.094617,136192 2회2회14.86814.116617,072192 3회3회17.38916.411619,984240 Q23 14.89314.255617,178192 1회1회14.84914.201617,152192 2회2회14.88014.169617,072192 3회3회14.95114.395617,312192 Q24 14.74414.159617,272192 1회1회14.62414.189617,312192 2회2회14.88314.145617,168192 3회3회14.72714.144617,336192

23 23Set Query Result (7) ElapsedCPUBlock InBlock Out Q2B Q25 Avg.14.73814.122617,216192 1회1회14.81314.136617,240192 2회2회14.86214.151617,168192 3회3회14.54114.079617,240192 Q26 14.83314.1617,205192 1회1회14.88514.117617,192192 2회2회14.85914.122617,168192 3회3회14.75614.061617,256192 Q27 14.90114.195617,218192 1회1회14.91514.201617,232192 2회2회14.91014.199617,168192 3회3회14.87814.186617,256192 Q28 14.90414.222617,349192 1회1회15.07014.393617,640192 2회2회14.91514.206617,160192 3회3회14.72714.067617,248192

24 24Set Query Result (8) ElapsedCPUBlock InBlock Out Q3A Q29 Avg.4.6093.98710,698304 1회1회4.5273.97710,656344 2회2회4.7434.05910,656344 3회3회4.5573.92710,784224 Q30 5.2384.59413,298341 1회1회5.2774.58713,200344 2회2회5.3624.64013,216336 3회3회5.0774.55613,480344 Q31 13.75913.177335,413226 1회1회13.92813.250335,120240 2회2회13.53813.176335,368240 3회3회13.81113.105335,752200 Q32 13.93813.244609,925208 1회1회13.86813.190609,976192 2회2회13.83813.117609,688192 3회3회14.10913.426610,112240

25 25Set Query Result (9) ElapsedCPUBlock InBlock Out Q3A Q33 Avg.14.51713.822612,349197 1회1회14.13713.441611,576192 2회2회14.11413.398611,392192 3회3회15.30114.629614,080208 Q34 15.01714.431614,333197 1회1회16.97916.241617,488208 2회2회14.29313.571612,968192 3회3회13.78113.483612,544192 Q35 14.34713.663613,848186 1회1회14.34013.657613,864176 2회2회14.31913.655613,728192 3회3회14.38413.678613,952192 Q3BQ36 4.6514.07210,984344 1회1회4.7304.08011,208344 2회2회4.3964.01810,528344 3회3회4.8274.11811,216344

26 26Set Query Result (10) ElapsedCPUBlock InBlock Out Q3B Q37 Avg.5.3894.63212,890344 1회1회5.3234.61812,840344 2회2회5.4464.59212,832344 3회3회5.4004.68613,000344 Q38 14.17413.428337,005400 1회1회14.01213.334336,128480 2회2회14.31713.643337,096480 3회3회14.19413.307337,792240 Q39 14.54313.797611,648224 1회1회13.92213.244609,776240 2회2회14.26313.548610,472192 3회3회15.44414.599614,696240 Q40 13.90313.220611,306192 1회1회13.86513.178611,264192 2회2회13.92613.195611,264192 3회3회13.91813.289611,392192

27 27Set Query Result (11) ElapsedCPUBlock InBlock Out Q3B Q41 Avg.14.21613.503612,848192 1회1회14.12513.441612,848192 2회2회14.23913.470612,768192 3회3회14.28413.600612,928192 Q42 14.36313.633613,669192 1회1회14.25013.579613,616192 2회2회14.38913.589613,576192 3회3회14.45113.731613,816192 Q4A Q43 15.03214.297618,216672 1회1회14.90614.273618,248672 2회2회15.01814.319618,176672 3회3회15.17314.300618,224672 Q44 15.16914.275615,210392 1회1회14.26913.532612,744376 2회2회14.30613.577612,832376 3회3회16.93415.717620,056424

28 28Set Query Result (12) ElapsedCPUBlock InBlock Out Q4A Q45 Avg.14.37413.661613,552269 1회1회14.29013.609613,536280 2회2회14.40813.667613,464264 3회3회14.42513.707613,656264 Q46 14.32113.603612,938381 1회1회14.22013.543612,912392 2회2회14.29513.560612,832376 3회3회14.44813.707613,072376 Q47 14.39913.703613,752568 1회1회14.28613.621613,688568 2회2회14.44013.727613,624568 3회3회14.47313.761613,944568 Q48 14.42113.709613,746688 1회1회14.38813.717613,688688 2회2회14.45013.709613,616688 3회3회14.42513.702613,936688

29 29Set Query Result (13) ElapsedCPUBlock InBlock Out Q4A Q49 Avg.15.26614.554613,034378 1회1회13.97513.298611,376352 2회2회14.15713.422611,296368 3회3회17.66716.944616,432416 Q50 13.98713.256611,416221 1회1회13.94313.196611,336216 2회2회13.97713.242611,296216 3회3회14.04213.331611,616232 Q4B Q51 14.24713.549612,818192 1회1회14.14113.448612,768192 2회2회14.27313.577612,688192 3회3회14.32813.624613,000192 Q52 14.23513.512612,978192 1회1회14.19213.484612,984192 2회2회14.20013.482612,840192 3회3회14.31613.570613,112192

30 30Set Query Result (14) ElapsedCPUBlock InBlock Out Q4B Q53 Avg.14.27513.548612,973186 1회1회14.15613.441612,992192 2회2회14.27613.550612,792176 3회3회14.39313.653613,136192 Q54 14.68914.093614,434194 1회1회14.21513.495612,968192 2회2회14.34213.607612,816192 3회3회15.51215.177617,520200 Q55 13.99813.406611,546192 1회1회13.88713.160611,448192 2회2회13.98413.272611,248192 3회3회14.12513.786611,944192 Q56 13.86013.260611,378192 1회1회13.98313.268611,448192 2회2회13.93513.206611,248192 3회3회13.66513.308611,440192

31 31Set Query Result (15) ElapsedCPUBlock InBlock Out Q4BQ57 Avg.14.1513.479611,621192 1회1회14.02413.303611,384192 2회2회13.95313.225611,248192 3회3회14.47313.911612,232192 Q5 Q58 61.71961.186887,309405,354 1회1회60.89360.216873,896405,256 2회2회61.08460.413881,960405,240 3회3회63.18062.930906,072405,568 Q59 61.28360.719881,245405,317 1회1회58.94358.584843,672405,296 2회2회65.83265.076958,320405,224 3회3회59.07658.497841,744405,432 Q60 58.61557.983850,570405,240 1회1회59.46658.709865,672405,240 2회2회58.38157.942844,896405,264 3회3회58.00057.298841,144405,216

32 32Set Query Result (16) ElapsedCPUBlock InBlock Out Q6A Q61 Avg.5.2554.57212,693314 1회1회5.1684.50412,648344 2회2회5.3364.63412,792344 3회3회5.2614.57912,640256 Q62 5.4954.88713,354314 1회1회5.6264.91113,672344 2회2회5.6234.89113,472256 3회3회5.2364.86012,920344 Q63 8.3237.58121,776261 1회1회8.3097.59021,776256 2회2회8.3417.57721,672256 3회3회8.3197.57621,880272 Q64 31.64230.89492,906389 1회1회30.92430.23491,392256 2회2회32.74931.98595,856496 3회3회31.25430.46491,472416

33 33Set Query Result (17) ElapsedCPUBlock InBlock Out Q6AQ65 Avg.150.907150.125435,122610 1회1회154.637153.781448,008536 2회2회146.069145.292419,112472 3회3회152.015151.302438,248824 Q6B Q66 5.5664.88313,189314 1회1회5.5644.86313,144344 2회2회5.6294.95113,280256 3회3회5.5064.83613,144344 Q67 8.3897.66321,613256 1회1회8.2937.59721,648256 2회2회8.4777.72121,544256 3회3회8.3977.67221,648256 Q68 31.25730.57092,680304 1회1회31.19430.49192,400256 2회2회31.49930.77093,352272 3회3회31.07830.45092,288384

34 34Set Query Result (18) ElapsedCPUBlock InBlock Out Q6BQ69 Avg.24.27523.570795,8215,450 1회1회24.28223.570796,6245,344 2회2회24.19823.478796,4485,384 3회3회24.34623.662794,3925,624

35 35Set Query Comparison (1) Page Size 4K Elapsed time - 질의 수행 후 메모리에 대용량 자료 쓰기 수행 Page Size 4K Elapsed time - 질의 수행 후 메모리에 대용량 자료 쓰기 안함 Page Size 8K Elapsed time - 질의 수행 후 메모리에 대용량 자료 쓰기 수행 Block InBlock Out Q1014.74712.58122.1161,095,168224 Q1914.05111.94620.9371,087,480224 Q2815.07013.02422.1341,095,368224 Q3514.34012.00121.0151,087,488224 Q4214.25011.90421.2421,087,584224 Q5013.94311.57520.4411,082,784288 Q5714.02411.51620.4591,082,644224 Q6059.46639.356270.6072,832,3842,030,160 Q65154.637103.205190.978748,592528 Q6924.28220.723188.902738,496832

36 36Set Query Comparison (2) Connection Time Query Processing Total Time Q103.91410.9814.894 Q194.03610.48114.517 Q284.00810.81514.823 Q353.99510.25314.248 Q424.02410.22714.251 Q504.1199.90614.025 Q574.0459.91213.957 Q607.60551.03958.644 Q654.103145.096149.199 Q693.87620.30424.180

37 37Set Query Query plan (1) Query Query plan Q1 Index scan(bench, bench.kseq=2) Q2 Index scan(bench, bench.k100k=2) Q3 Index scan(bench, bench.k10k=2) Q4 Index scan(bench, bench.k1k=2) Q5 Index scan(bench, bench.k100=2) Q6 Index scan(bench, bench.k25=2) Q7 Index scan(bench, bench.k10=2) Q8 Index scan(bench, bench.k5=2) Q9 Index scan(bench, bench.k4=2) Q10 Index scan(bench, bench.k2=2) Q11 Index scan(bench, bench.kseq=3) Q12 Index scan(bench, bench.k100k=3) Q13 Index scan(bench, bench.k10k=3) Q14 Index scan(bench, bench.k2=2)

38 38Set Query Query plan (2) Query Query plan Q15 Index scan(bench, bench.k2=2) Q16 Q17 Index scan(bench, bench.k10=3) Q18 Index scan(bench, bench.k5=3) Q19 Index scan(bench, bench.k4=3) Q20 Index scan(bench, bench.k2=2) Q21 Q22 Q23 Q24 Q25 Q26 Q27 Q28

39 39Set Query Query plan (3) Query Query plan Q29 Index scan(bench, bench.k100k=3) Q30 Index scan(bench, bench.k10k=3) Q31 Index scan(bench, bench.k100=3) Q32 Index scan(bench, bench.k25=3) Q33 Index scan(bench, bench.k10=3) Q34 Index scan(bench, bench.k5=3) Q35 Index scan(bench, bench.k4=3) Q36 Index scan(bench, bench.k100k=3) Q37 Index scan(bench, bench.k10k=3) Q38 Index scan(bench, bench.k100=3) Q39 Index scan(bench, bench.k25=3) Q40 Index scan(bench, bench.k10=3) Q41 Index scan(bench, bench.k5=3) Q42 Index scan(bench, bench.k4=3)

40 40Set Query Query plan (4) Query Query plan Q43 Index scan(bench, bench.k2=1) Q44 Index scan(bench, bench.k5=3) Q45 Q46 Q47 Index scan(bench, bench.k4=3) Q48 Q49 Index scan(bench, bench.k10=7) Q50 Q51 Index scan(bench, bench.k5=3) Q52 Q53 Q54 Q55 Index scan(bench, bench.k10=7) Q56

41 41Set Query Query plan (5) Query Query plan Q57 Index scan(bench, bench.k10=7) Q58 Sequential scan(bench) Q59 Q60 Q61 Nested loops Index scan(b1, b1.k100k=49) Index scan(b1, b1.k100k=49) Index scan(b2, b1.k250k=b2.k500k) Index scan(b2, b1.k250k=b2.k500k) Q62 Nested loops Index scan(b1, b1.k40k=49) Index scan(b1, b1.k40k=49) Index scan(b2, b1.k250k=b2.k500k) Index scan(b2, b1.k250k=b2.k500k) Q63 Nested loops Index scan(b1, b1.k10k=49) Index scan(b1, b1.k10k=49) Index scan(b2, b1.k250k=b2.k500k) Index scan(b2, b1.k250k=b2.k500k)

42 42Set Query Query plan (6) Query Query plan Q64 Nested loops Index scan(b1, b1.k1k=49) Index scan(b1, b1.k1k=49) Index scan(b2, b1.k250k=b2.k500k) Index scan(b2, b1.k250k=b2.k500k) Q65 Nested loops Index scan(b1, b1.k100=49) Index scan(b1, b1.k100=49) Index scan(b2, b1.k250k=b2.k500k) Index scan(b2, b1.k250k=b2.k500k) Q66 Nested loops Index scan(b1, b1.k40k=99) Index scan(b1, b1.k40k=99) Index scan(b2, b1.k250k=b2.k500k) Index scan(b2, b1.k250k=b2.k500k) Q67 Nested loops Index scan(b1, b1.k10k=99) Index scan(b1, b1.k10k=99) Index scan(b2, b1.k250k=b2.k500k) Index scan(b2, b1.k250k=b2.k500k)

43 43Set Query Query plan (7) Query Query plan Q68 Nested loops Index scan(b1, b1.k1k=99) Index scan(b1, b1.k1k=99) Index scan(b2, b1.k250k=b2.k500k) Index scan(b2, b1.k250k=b2.k500k) Q69 Merge join(b1.k250k=b2.k500k) Index scan(b1, b1.k100=99) Index scan(b1, b1.k100=99) Index scan(b2, b2.k25=19) Index scan(b2, b2.k25=19)

44 44Set Query Conclusion & Analysis (1) 데이터 생성기에 대한 검증 데이터 생성기에 대한 검증 “Set Query” 논문에서 제시하는 알고리즘으로 구현하여 논문에서 제시하는 칼럼 값과 일치함으로써 검증 “Set Query” 논문에서 제시하는 알고리즘으로 구현하여 논문에서 제시하는 칼럼 값과 일치함으로써 검증 결과에 대한 검증 결과에 대한 검증 “Set Query” 논문의 Appendix A 에 나오는 결과값과 구현 결과값을 비교하여 검증 “Set Query” 논문의 Appendix A 에 나오는 결과값과 구현 결과값을 비교하여 검증 모든 결과값 동일하며 각 질의들은 정확히 수행 모든 결과값 동일하며 각 질의들은 정확히 수행 시스템 통계에 대한 고려 시스템 통계에 대한 고려 “Set Query” 논문에서는 통계 수집을 시험 대상 시스템에 서 제공하는 툴을 사용해서 통계 수집 “Set Query” 논문에서는 통계 수집을 시험 대상 시스템에 서 제공하는 툴을 사용해서 통계 수집 “UniSQL” 에는 제공하지 않으므로 운영체제 관점에서 통 계 수집을 수행 “UniSQL” 에는 제공하지 않으므로 운영체제 관점에서 통 계 수집을 수행

45 45Set Query Conclusion & Analysis (2) $/QPS $/QPS H/W 와 S/W 에 대한 비용이 없음으로 제시하지 않음 H/W 와 S/W 에 대한 비용이 없음으로 제시하지 않음 각 질의 수행 결과의 출력 각 질의 수행 결과의 출력 사용자에게 결과 파일 (outputFile.txt) 로 제공함 사용자에게 결과 파일 (outputFile.txt) 로 제공함 outputFile.txt outputFile.txt Query --- select count(*) from bench where kseq = 2 1………… Query --- select count(*) from bench where k4 = 2 249431…………

46 46Set Query Conclusion & Analysis (3) 페이지 크기에 대한 고려 페이지 크기에 대한 고려 페이지 크기의 변화에 따라서 수행 시간이 변함 페이지 크기의 변화에 따라서 수행 시간이 변함 페이지 크기가 8K 인 경우의 I/O 발생이 4K 보다 많음 페이지 크기가 8K 인 경우의 I/O 발생이 4K 보다 많음 4K 크기가 8K 크기 보다 좋은 이유는 OS 의 파일 시스템 의 기본 페이지 크기가 4K 로 같은 크기 값으로써 좋은 것 으로 생각됨 4K 크기가 8K 크기 보다 좋은 이유는 OS 의 파일 시스템 의 기본 페이지 크기가 4K 로 같은 크기 값으로써 좋은 것 으로 생각됨 Connection Time 대한 고려 Connection Time 대한 고려 평균 4 초 정도는 데이터베이스의 연결을 하고 있음 평균 4 초 정도는 데이터베이스의 연결을 하고 있음 간단한 질의는 질의 처리 시간에 비해 많은 시간을 연결 에 사용하고 있음 간단한 질의는 질의 처리 시간에 비해 많은 시간을 연결 에 사용하고 있음


Download ppt "Implementation of Set Query with UniSQL 2002. 6 이학찬, 류문수 숭실대학교 컴퓨터학과"

Similar presentations


Ads by Google