版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、COMP231Join AlgorithmPrepared by Raymond WongPresented by Raymond WongCOMP2311ExampleConsider the following SQL query.E.g., student (sid, sname, age) take (sid, cid) select sname from student S, take T where S.sid = T.sidCOMP2312ExampleAssuming the following table sizes:Student: 500 pages, 80 tuples
2、/page, 50 bytes/tupleTake: 1000 pages, 100 tuples/page, 40 bytes/tupleAssume that there are 200 courses in table TakeStudent: 500 pages, 80 tuples/page, 50 bytes/tupleTake: 1000 pages, 100 tuples/page, 40 bytes/tuple- 200 courses in table Take- 1, 2, , 40 in attribute Ageof table StudentCOMP2313Outl
3、ineSimple-Nested Loop JoinBlock-Nested Loop JoinSort-Merge JoinIndex-Nested Loop JoinHash JoinCOMP2314Simple-Nested Loop JoinFor each page p of T(T is called outer relation) for each page q of S(S is called inner relation) for each tuple t p and each tuple s q such that t.sid = s.sid output to the o
4、utput0005000200040002000200010005000500020002000300020005p (from T)q (from S)Student: 500 pages, 80 tuples/page, 50 bytes/tupleTake: 1000 pages, 100 tuples/page, 40 bytes/tuple- 200 courses in table Take- 1, 2, , 40 in attribute Ageof table StudentFor each tuple r in page p For each tuple s in page
5、q, If r.sid = s.sid then output the tuple joined from tuple r and tuple s COMP2315Simple-Nested Loop JoinDiskTSMemoryOutputCOMP2316Simple-Nested Loop JoinFor each page p of T(T is called outer relation) for each page q of S(S is called inner relation) for each tuple t p and each tuple s q such that
6、t.sid = s.sid output to the outputStudent: 500 pages, 80 tuples/page, 50 bytes/tupleTake: 1000 pages, 100 tuples/page, 40 bytes/tuple- 200 courses in table Take- 1, 2, , 40 in attribute Ageof table StudentWe need 3 pages for buffer1 page for p (from T)1 page for q (from S)1 page for the outputCOMP23
7、17Simple-Nested Loop JoinStudent: 500 pages, 80 tuples/page, 50 bytes/tupleTake: 1000 pages, 100 tuples/page, 40 bytes/tuple- 200 courses in table Take- 1, 2, , 40 in attribute Ageof table StudentCost of Reading T = 1000 pages The total number of times that S is read = 1000 Cost of Reading S (with m
8、ultiple times) = 1000*500 = 500000 pages Total Cost = 1000 + 500000 = 501000 pagesFor each page p of T(T is called outer relation) for each page q of S(S is called inner relation) for each tuple t p and each tuple s q such that t.sid = s.sid output to the outputCOMP2318OutlineSimple-Nested Loop Join
9、Block-Nested Loop JoinSort-Merge JoinIndex-Nested Loop JoinHash JoinCOMP2319Block-Nested Loop JoinFor each block P of T(T is called outer relation) for each page q of S(S is called inner relation) for each tuple t P and each tuple s q such that r.sid = s.sid output to the outputStudent: 500 pages, 8
10、0 tuples/page, 50 bytes/tupleTake: 1000 pages, 100 tuples/page, 40 bytes/tuple- 200 courses in table Take- 1, 2, , 40 in attribute Ageof table StudentCOMP23110Block-Nested Loop JoinDiskTSMemoryOutputCOMP23111Block-Nested Loop JoinFor each block P of T(T is called outer relation) for each page q of S
11、(S is called inner relation) for each tuple t P and each tuple s q such that t.sid = s.sid output to the outputStudent: 500 pages, 80 tuples/page, 50 bytes/tupleTake: 1000 pages, 100 tuples/page, 40 bytes/tuple- 200 courses in table Take- 1, 2, , 40 in attribute Ageof table StudentSuppose we have B
12、pages in memory (or B buffer pages)B-2 pages for P (from T)1 page for q (from S)1 page for the outputSuppose that B = 6 pages COMP23112Block-Nested Loop JoinFor each block P of T(T is called outer relation) for each page q of S(S is called inner relation) for each tuple t P and each tuple s q such t
13、hat t.sid = s.sid output to the outputStudent: 500 pages, 80 tuples/page, 50 bytes/tupleTake: 1000 pages, 100 tuples/page, 40 bytes/tuple- 200 courses in table Take- 1, 2, , 40 in attribute Ageof table StudentCost of Reading T = 1000 pages The total number of times that S is read = 1000/(6-2) = 250C
14、ost of Reading S (with multiple times) = 250*500 = 125000 pages Total Cost = 1000 + 125000 = 126000 pagesSuppose that B = 6 pages COMP23113Block-Nested Loop JoinT is the outer relationS is the inner relationHow about the following?T is the inner relationS is the outer relationStudent: 500 pages, 80
15、tuples/page, 50 bytes/tupleTake: 1000 pages, 100 tuples/page, 40 bytes/tuple- 200 courses in table Take- 1, 2, , 40 in attribute Ageof table StudentSuppose that B = 6 pages COMP23114Block-Nested Loop JoinFor each block P of S(S is called outer relation) for each page q of T(T is called inner relatio
16、n) for each tuple s P and each tuple t q such that t.sid = s.sid output to the outputStudent: 500 pages, 80 tuples/page, 50 bytes/tupleTake: 1000 pages, 100 tuples/page, 40 bytes/tuple- 200 courses in table Take- 1, 2, , 40 in attribute Ageof table StudentCost of Reading S = 500 pages The total numb
17、er of times that T is read = 500/(6-2) = 125Cost of Reading T (with multiple times) = 125*1000 = 125000 pages Total Cost = 500 + 125000 = 125500 pagesSuppose that B = 6 pages COMP23115Block-Nested Loop JoinExecution 1T is the outer relationS is the inner relationCost = 126000 pagesExecution 2S is th
18、e inner relationT is the outer relationCost = 125500 pagesWhich one is better?COMP23116OutlineSimple-Nested Loop JoinBlock-Nested Loop JoinSort-Merge JoinIndex-Nested Loop JoinHash JoinCOMP23117Sort-Merge Join1. Sort table T according to sid2. Sort table S according to sid3. Merge table T and table
19、S0004000500010002000200050002000300020005000200050002TSCOMP23118Sort-Merge Join1. Sort table T according to sid2. Sort table S according to sid3. Merge table T and table S0004000500010002000200050002000300020005000200050002TS0001000200020002000400050005COMP23119Sort-Merge Join1. Sort table T accordi
20、ng to sid2. Sort table S according to sid3. Merge table T and table S0004000500010002000200050002000300020005000200050002TS0001000200020002000400050005000200020002000300050005COMP23120Sort-Merge Join1. Sort table T according to sid2. Sort table S according to sid3. Merge table T and table S000100020
21、0020002000400050005000200020002000300050005TSCOMP23121Sort-Merge Join1. Sort table T according to sid2. Sort table S according to sid3. Merge table T and table SCost of Sorting = 2N * (# of passes)where no. of passes=COMP23122Sort-Merge Join1. Sort table T according to sid2. Sort table S according t
22、o sid3. Merge table T and table SStudent: 500 pages, 80 tuples/page, 50 bytes/tupleTake: 1000 pages, 100 tuples/page, 40 bytes/tuple- 200 courses in table Take- 1, 2, , 40 in attribute Ageof table StudentSuppose that B = 6 pages Total Cost = 10000 + 4000 + 1500 = 15500 pagesCost of Sorting T = 2*100
23、0*( ) = 10000Cost of Sorting S = 2*500*( ) = 4000Cost of Merging = Cost of Reading T + Cost of Reading S = 1000 + 500 = 1500COMP23123OutlineSimple-Nested Loop JoinBlock-Nested Loop JoinSort-Merge JoinIndex-Nested Loop JoinHash JoinCOMP23124Index-Nested Loop JoinAssume that there is an index built on
24、 attribute sid for table StudentE.g., If we search for the tuples with sid = 0005Student: 500 pages, 80 tuples/page, 50 bytes/tupleTake: 1000 pages, 100 tuples/page, 40 bytes/tuple- 200 courses in table Take- 1, 2, , 40 in attribute Ageof table Student000500020002000300020005Sindex on SCOMP23125Inde
25、x-Nested Loop Join0005000200040002000200010005T000500020002000300020005Sindex on SFor each tuple t of T ID t.sid use the index to obtain a tuple s (or tuples) in S with s.sid = ID for each such s in S output to the output Assume that we have a hash index on sid for table SThe cost of accessing a hash index is 1.2 pagesCOMP23126Index-Nested Loop JoinFor each tuple t of T ID t.sid use the index to obtain a tuple s (or tuples) in S with s.sid = ID for each such s in S ou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务公司客服部客户满意度及服务质量绩效评定表
- 关于物资采购的复函(6篇)范文
- 美术编辑中级试题及答案
- 建筑工程施工之模板工程施工工艺
- 关于协商供应商合作模式的回复函6篇范本
- 小学主题班会课件:创新思维,培养未来之星
- 年度市场调研报告分享函件3篇范本
- 关于调整跨省运输路线的请示函7篇
- 世界-动物-日:发现与探索小学主题班会课件
- 航空机务人员飞机维护质量及飞行安全保障绩效衡量表
- 动脉血气标本采集并发症预防及处理课件
- 车间夜间值班管理制度
- 2025年电工(中级)职业技能鉴定参考试指导题库(含答案)
- JC∕T 2558-2020 透水混凝土标准规范
- DL∕T 5161.9-2018 电气装置安装工程质量检验及评定规程 第9部分:蓄电池施工质量检验
- 研究生入学考试中医基础理论考点精要
- 《心脏骤停》课件
- 士林变频器说明书SL
- 钢结构除锈刷漆施工方案
- 开关柜局放带电检测技术
- GB/T 20933-2014热轧钢板桩
评论
0/150
提交评论