- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库管理系统基本技术 主要内容 数据库存储技术 数据库查询技术 查询处理 查询处理 外部排序操作 关系操作的执行 查询优化 一个典型的优化器 外部排序操作 排序操作是数据库中常用的操作 用户需要查询的结果是排序的 排序是Bulk Loading的第一步 排序可用于删除重复纪录 在联接操作中经常使用排序操作 由于数据库中的数据量经常超过内存的大小,所以需要用外部排序 外部排序操作 简单的两路Merge排序 外部Merge 排序 提高性能的几点考虑 利用B+树进行排序 简单两路Merge排序 使用3个页的内存进行排序 基本思想 将大的文件转换成小的块 对这些块进行排序 使用最小的空间进行Merge排序 每个排过序的小文件为一个run 在内存中可以用各种排序方法 算法 Proc 2-way-exsort(file) Read each page into memory, sort it, write it out While the number of runs at end of previous pass1 while there are runs to be merge from previous pass is choose next two runs(from previous pass) read each run into an input buffer; Merge the runs and write to the output buffer force output buffer to disk one page at a time endproc 计算量分析 若输入文件大小为2k,k为一个整数 Pass 0,产生2k个run,每个1页 Pass 1,产生2k-1个run,每个2页 Pass 2,产生2k-2个run,每个4页 总共需要?log2N ?+1次pass,N为文件的页数,对每一页做一次读,一次写 总共的开销为:2N*(?log2N ?+1) 例子 外部Merge排序 若内存中有B个pages。如何利用2路Merge排序的思想,进行排序操作? 在pass 0一次性读入B个页的数据进行排序。 在pass 1,2,…一次性读入B个页的数据进行排序。利用B-1个Buffer页作为输入,将最后一个Buffer页作为输出的缓冲区,进行B-1路的Merge排序。 算法 Proc exsort(file) Read B page into memory, sort them, write out a run While the number of runs at end of previous pass 1 while there are runs to be merged from previous pass choose next B-1 runs(from previous pass) read each run into an input buffer; page at at time Merge the runs and write to the output buffer force output buffer to disk one page at a time endproc 图示 计算量分析 第一次产生N1= ?N/B?个runs 对数据扫描的遍数,变为?logB-1N1?+1 最终的I/O次数为2N* ?logB-1N1?+1 性能实例 如何减少run的个数 在Pass 0的过程中,可使用一些技巧,使得最初的run的长度平均为2B 基本想法 有一个页的输入缓冲区、一个页的输出缓冲区和一个当前排序缓冲区 首先将数据调入当前排序缓冲区(B-2页)进行排序 不断将大于输出缓冲区中数据的最小的记录从当前排序缓冲区读出送入输出缓冲区,并不断从输入缓冲区中补充数据。 直到当前缓冲区中没有可选的数据为止,则当前run结束 例子 减少I/O代价的优化 性能的评价是一I/O的次数为标准的 如果一次对连续的数据进行读写将提高性能 如何提高CPU的使用率 块I/O 以缓冲区Block(若干个page)为单位进行读写将提高单个Page读写的速度(减少了磁头移动的次数) 每次只能进行F=?(B-b)/b?个run的合并,其中B为缓冲区中页的数量,b为一个块中页的个数,总的扫描遍数为?logFN2?+1,其中N2= ?N/2B? 应用实例 双缓冲区 排序的时间包括I/O的时间和CPU计算的时间 在前面的方法中CPU计算的时间同I/O的时间不是并行的 对每个run多加一个缓冲区,一个缓冲区在进行I/O操作的同时,对另一个缓冲区的数据进行计算 图示 使用B+树进行排序 聚
您可能关注的文档
- 数学:6.1《等三角形》课件(鲁教版八年级下).ppt
- 数学:6.1《面直角坐标系》课件(人教新课标七年级下).ppt
- 数学:6.2《并同类项》说课课件(冀教版七年级上).ppt
- 数学:6.3《六章复习》课件(沪科版七年级下).ppt
- 数学:6.1《识100万》课件(北师大版七年级上).ppt
- 数学:6.2《化中的三角形》课件(北师大版七年级下).ppt
- 数学:6.2《形》课件(浙教版八年级下).ppt
- 数学:5.9《五章复习》课件(北师大版七年级下).ppt
- 数学:6.3正形课件(浙教版八年级下).ppt
- 数学:6.4《六章复习》课件(浙教版八年级上).ppt
- 数据库系统与应中期考核知识点.ppt
- 数据库系统原理应用教程4.ppt
- 数据库系统原理应用教程(第三版)ppt教学课件ch01.ppt
- 数据库系统概念第五版)Abraham Silberschatz著ch1.ppt
- 数据库系统概念第五版)Abraham Silberschatz著ch2.ppt
- 数据库系统教程—施伯乐第三版PPT6.ppt
- 数据库系统概论6范式.ppt
- 数据库系统概论n Introduction to Database System第三章 关.ppt
- 数据库系统概论n Introduction to Database System第五章 数.ppt
- 数据库系统概念第五版)Abraham Silberschatz著,ch5.ppt
最近下载
- 装饰色彩的魅力小学六年级美术PPT课件.pptx VIP
- 婴幼儿学习与发展 课件 第五章 婴幼儿动作学习与发展.pptx
- 五年级英语上册-Unit-2-Lesson-2-Was-he-happy课件2-鲁科版.ppt VIP
- 第8课 中国古代的法治与教化 课件(共27张PPT)(内嵌音频+视频).pptx VIP
- 第34章 生物与环境.ppt VIP
- 苏教版科学三年级下册全册教案(含反思).docx VIP
- SY/T 6597-2018 油气管道内检测技术规范(标准规范).doc VIP
- 烹饪工艺美术 烹饪图案的类别和基本形式 烹饪图案的类别和基本形式.ppt VIP
- 2025年度济南市专业技术人员继续教育公需科目答案.doc VIP
- 2024年陕西省西安工大附中丘成桐少年班初试数学试卷.pdf VIP
文档评论(0)