最新要闻
- 焦点信息:“学雷锋” 护平安
- 绝了!民间大神将手机魔改成30000mAh电池:续航BT、可两周一充
- 【环球报资讯】可算盼到!苹果一大波春季新品要来了:黄色款iPhone 14在列
- 神速!Android 15全球首曝:代号“香草冰淇淋”相当甜美
- 正直播:感动中国2022年度人物盛典!名单揭晓:满满正能量
- 全球热资讯!代表谈中传硕士在火锅店当保洁:建议大学生先就业再择业
- 简讯:库存多到爆!今年才两个月 SSD价格就跌超3成:还会更便宜?
- 环球热点!男子高速公路狂飙120km/h看《狂飙》:不碰方向盘、不看正前方
- 小米平板6系列来了:外形、CPU配置大曝光!确认新增NFC
- 焦点速读:真心恐怖!南极洲深海拍到罕见冥河水母:触手约10米长
- 跳过中考、高考、研考!15岁女生被西交大少年班录取:8年本硕连读
- 单踏板模式害死人?广东一特斯拉疑失控连撞多车冲毁店门 两人受伤现场惨
- 全球焦点!弯道超车成功!中国新能源汽车产销量全世界第一
- 每日关注!“准点下班被辞”女子申请赔偿一个月工资 公司回应:等仲裁结果
- 环球热资讯!《进击的巨人》最终季完结篇开播 前篇拿下豆瓣9.7分:改编超越原作
- 核心部件100%国产!东风新一代商乘通用氢燃料电池产品完成
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
当前头条:Paper Reading: How good are query optimizers, really?
Title
“How Good Are Query Optimizers, Really?” (Leis 等, 2015, p. 204) 「查询优化器到底有多好?大概就是通过比较查询优化器的有无时,查询执行的性能,来得到查询优化器对性能提升的程度」
Abstract
“ABSTRACT” (Leis 等, 2015, p. 204) 「摘要:
(资料图片)
Background:找到好的连接次序,对于查询性能的提升很重要
Why:引入 JOB,并使用复杂、真实的查询在传统优化器架构下 实验性地 测试优化器的主要组件。
What:如上,就是测试优化器的主要组件:
- 基数估计器
- 代价模型
- 计划枚举技术:穷举动态规划算法和启发性算法
How:通过引用 Join Order Benchmark,使用复杂真实多连接的查询
Novelty:引入JOB新的基准测试?
Conclusion:
- cardinality estimators:所有的都会出现大错误,并且如果查询引擎过于依赖他们,查询性能将不会很好
- cost model:比 Cardinality estimator 对于查询性能的影响小
- plan enumeration:在有次优cardinality estimates的情况下,穷举动态规划算法比启发式算法效果好。
1 Introduction
」
“INTRODUCTION” (Leis 等, 2015, p. 204) 「引言background:找到一个好的连接次序是数据库领域研究最多的问题。
Why:如摘要所说,使用真实复杂的工作负载,测试传统的优化器架构中三个组件对查询性能的提高程度。
What:进行测试,对三个组件进行量化,借此来为完整的优化器设计提供思路。
How:
引入新的基准测试JOB,使用复杂真实的工作负载和查询。文章的贡献——
- 设计了JOB,挑战性的工作负载
- 首次对连接次序问题提出端到端的研究
- 量化三个组件的贡献,提供设计优化器的指导方针
Novelty:
- 新颖的方法:能够单独测试出优化器每个组件对查询性能的影响
- 专注于越来越平凡的内存场景:所有数据都装入了RAM
Conclusion:如摘要中的Conclusion所示。」
3 Cardinality Estimation
“CARDINALITY ESTIMATION” (Leis 等, 2015, p. 206) 「基数估计是找到一个好的查询计划最重要的组件,没有好的基数估计,连接次序枚举和代价模型都无用。这一小节通过比较 估计的基数 和 真实的基数,来调查关系数据库系统中的质量。」
3.1 Estimates for Base Table
Base Table?
“Base Tables” (Leis 等, 2015, p. 207) 「基表:实际存在于数据库中的表查询表:查询结果对应的表视图表:由基本表和其他视图表导出的表,为虚表,不对应实际存储的数据。
基表的性质:
列是同质的,即每一列中的分量都是同一类型的数据,来自同一个域
不同的列可以来自同一个域,每一列又称之为属性,不同的属性要有不同的属性名
列的顺序无关紧要
行的顺序也无关紧要
任意两个元组的候选码不能取相同的值
分量必须要取原子值,即一个表中的某一项不能再拆成好几项
」
“Estimates for Base Tables” (Leis 等, 2015, p. 207) 「基表:实际存在于数据库中的表使用 q-error 来衡量基表基数估计的质量。公式为 |估计值/实际值|,是一个大于等于1的比率值。
观察基表选择的 q-error 值,得出以下结论:DBMS A和Hyper——估计具有复杂谓词(Like) 基表选择 的基数很准,因为估计基表的选择率时,使用了样本法(1000)。但是因为样本太小,对于选择率很小(10^-5)的情况,就会导致很大的选择性估计误差。
其他的数据库系统——表现更差,基于了每个属性的直方图,但是基于直方图的基数估计对于复杂的谓词并不是很有效,也无法检测出属性之间的联系。」
3.2 Estimates for Joins
“Estimates for Joins” (Leis 等, 2015, p. 207) 「本节的实验结果并不能说明相应系统的优化器不够好,因为查询的性能还依赖于优化器是如何使用和信任这些估计数据的。
为连接做基数估计:背景:样本法和直方图 对于连接中间结果的估计并没有很有效。
实验结果:
- 每个系统对 估计误差的 差异差不多,并且都不是很理想
- 所有系统都倾向于 低估了多连接查询的结果大小
改进:
可以像 DBMS A,使用阻尼因子来减少这种低估的程度。」
3.3 Estimates for TPC-H
“Estimates for TPC-H” (Leis 等, 2015, p. 208) 「TPC-H:针对 OLAP 场景的测试
TPC-C: 针对 OLTP 的场景的测试TPC-H 的工作负载对于系统的基数估计器并没有多大挑战,文章引入的 JOB 查询集合可以满足。」
3.4 Better Statistics for PosgreSQL
“Better Statistics for PostgreSQL” (Leis 等, 2015, p. 208) 「对照试验表明,对于 distinct counts 的估计误差对于基数估计误差的影响较小,相反由于distinct counts 的误差会导致基数估计的值更大一些,这使得 负负得正。。。」
4 When do bad cardinality estimates lead to slow queries?
4.1 The Risk of Relying on Estimates
“The Risk of Relying on Estimates” (Leis 等, 2015, p. 209) 「依赖基数估计的风险:由于PostgreSQL的优化器纯粹基于代价,不考虑基数估计的内在不确定性和不同算法选择的渐近复杂。
- 查询执行没有在合理时间内完成:由于基数低估过于频繁,导致优化器会冒着高风险来选择低收益的嵌套循环连接;
- 还有一部分查询的执行时间比最优计划的时间多十倍:因为基数低估导致hash连接的hash表大小被低估
」
4.2 Good Plans Despite Bad Cardinalities
“Good Plans Despite Bad Cardinalities” (Leis 等, 2015, p. 209) 「理论上,有着不同的连接顺序的计划的查询执行时间会在量级上不同,但是当只有主键索引并且嵌套循环连接禁止、hash冲计算启用后,大多数查询的性能会很接近最优计划的性能:原因有二——
只有主键索引,没有外键索引,这导致大多数表只能用全表扫描,这对于表连接顺序的影响很小
主存足够大,装入了所有的索引和数据。。。。
」
4.3 Complex Access Paths
“Complex Access Paths” (Leis 等, 2015, p. 210) 「整体性能普遍提高了,但是随着可用索引的逐渐增多,查询优化器的工作也越来越困难
」
4.4 Join-Crossing Correlations
“Join-Crossing Correlations” (Leis 等, 2015, p. 210) 「
背景:对于单表,对于存在有相互关系谓词的查询,使用样本可以得到较准确的技术估计。对于多表连接,来自不同的表的连接查询有 相互关系的谓词所包含的列 ,由连接来连接。
」
“DBLP case,” (Leis 等, 2015, p. 210) 「例子:SELECT COUNT(*) FROM Authors, Authorship, Papers WHERE Authorship.author = Author.author AND Authorship.venue = "VLDB"
对于这个例子,一般:需要先进行表的连接,然后在进行过滤;特殊物理设计:将Authorship中的物理设计根据Paper.venue进行划分,这样在连接发生之前,就可以将过滤隐性的进行。
优点:可以避免中间结果无关数据过多。
」
5 Cost Models
与Cardinality estimation error相比,cost models对性能的影响很小。。
6 Plan Space
“PLAN SPACE” (Leis 等, 2015, p. 212) 「最后一个重要的优化器组件——一个计划枚举算法(探索 语义等价的连接次序计划空间)
- 全面探索——DP
- 启发式
这个章节的目的:找到需要多大的搜索空间,才能找到一个好的计划
」
6.1 How Important is the Join Order
“clearly illustrate the importance of the join ordering problem” (Leis 等, 2015, p. 213) 「从这张代价分布图:
- 最优计划的代价比最慢/中位的代价快了几个数量级
- 不同查询的代价分布很不同
- 外键+主键 这种索引配置的最优代价比其他配置快不少。
」
“highlight the dramatically different search spaces of the three index configurations.” (Leis 等, 2015, p. 213) 「不同的 索引配置,其对应的搜索空间也很不同:
- 有外键索引的配置,搜索空间更偏向于最优计划的代价(1.5X)
- 有外键的索引配置:搜索空间的代价更宽泛
」
6.2 Are Bushy Trees necessary
“Are Bushy Trees Necessary?” (Leis 等, 2015, p. 213) 「本章节要解决的问题:多枝树是否有必要?
连接树形——左深树:
- 连接树的每个连接算子的右子节点都一定是一个基表
- NLJ 的连接树只可能是左深树
右深树:
- 连接树的每个连接算子的左子节点都一定是一个基表
- HJ 和 Sort-Merge Join的连接树有可能是右深树
- 哈希连接为右深树时,会同时有多个表被做成Hash表,从而消耗过多的PGA
锯齿形树(zig-zag trees):
- 连接树的每个连接算子的左右子节点中,至少有一个基表。
浓密树(bushy trees):
- 连接树的每个连接算子的左右子节点可能都不是基表,结构为安全自由
- 优化器无法选择其他树形时,才会选择浓密树
- 一般当查询包含 子查询/视图,可能产生浓密树。
---
连接树的处理规则:
・从最左端的叶节点开始处理
・左节点的处理优先级高于右节点
・左节点驱动右节点
・子节点在父节点之前进行处理
・子节点处理完获得的数据返回给父节点。---
限制条件和连接条件——注:限制条件可在连接条件之前执行限制条件:
- 两个数据集通过连接条件进行连接,Where中(传统)或者From中(ANSI 标准)
连接条件:
- 在连接返回的结果集上应用限制条件(传统和ANSI 标准)
- 防止出现 交叉乘积连接
---
连接类型——Nested-Loop Join :
- 左子节点为外部循环,右子节点为内部循环
- 对于左子节点的每一条记录,右子节点都要执行一次连接条件和限制条件。
2.1 外部循环只执行一次2.2 内部循环执行多次
- 在所有数据执行完之前,就可以获得结果集的第一条记录
- 可以利用索引来高效连接
Hash Join:1.
Sort-Merge Join:
- 每个输入数据集都必须先按照连接条件的字段进行排序
- 每个输入数据集只执行一次
- 在所有数据执行完之后,才能获得第一条记录
」
6.3 Are Heuristics Good Enough
“Are Heuristics Good Enough?” (Leis 等, 2015, p. 213) 「启发式算法 足够好吗?
在技术估计质量不好的情况下,比较:
全面的动态规划:exhaustive dynamic programming
随机化的启发式:QuickPick-1000
贪婪的启发式:Greedy Operator Ordering
归一化,用真实的基数使用动态规划得到真实最优计划的代价,得到结论:
- 尽管存在技术估计误差,使用 全面的动态规划 算法,来全面地检查 搜索空间 是很值得的
- 好的 基数估计 的性能潜力,会提高性能
- 考虑到,为 数十个表连接的查询找到最优计划,是存在 全面的枚举算法:因此很少有需要诉诸于 禁用浓密树和启发式算法的情况。
」
-
当前头条:Paper Reading: How good are query optimizers, really?
Title“HowGoodAreQueryOptimizers,Really?”(Leis等,2015,p 204)「查询优化器到底有多好?大概就是通过比较查询优化器的有无
来源: 当前头条:Paper Reading: How good are query optimizers, really?
全球实时:使用ELRepo升级CentOS内核
天天热点!使用招商银行云直连服务提现
新动态:TCP通信聊天服务端和客户端(C/C++语言开发)附完整源码
焦点信息:“学雷锋” 护平安
绝了!民间大神将手机魔改成30000mAh电池:续航BT、可两周一充
【环球报资讯】可算盼到!苹果一大波春季新品要来了:黄色款iPhone 14在列
全球观热点:二叉树遍历的操作与实现
神速!Android 15全球首曝:代号“香草冰淇淋”相当甜美
正直播:感动中国2022年度人物盛典!名单揭晓:满满正能量
全球热资讯!代表谈中传硕士在火锅店当保洁:建议大学生先就业再择业
简讯:库存多到爆!今年才两个月 SSD价格就跌超3成:还会更便宜?
环球热点!男子高速公路狂飙120km/h看《狂飙》:不碰方向盘、不看正前方
小米平板6系列来了:外形、CPU配置大曝光!确认新增NFC
焦点速读:真心恐怖!南极洲深海拍到罕见冥河水母:触手约10米长
【世界热闻】无/低代码开发平台(产品)
跳过中考、高考、研考!15岁女生被西交大少年班录取:8年本硕连读
单踏板模式害死人?广东一特斯拉疑失控连撞多车冲毁店门 两人受伤现场惨
The Missing Semester - 第五讲 学习笔记
记录--在Vue3这样子写页面更快更高效
全球今日讯!打开MASA Blazor的正确姿势5:插槽
全球焦点!弯道超车成功!中国新能源汽车产销量全世界第一
每日关注!“准点下班被辞”女子申请赔偿一个月工资 公司回应:等仲裁结果
定位解析一个因脚本劫持导致webpack动态加载异常的问题
全球热文:python名称空间和作用域
天天实时:定位Dll加载异常的方法
环球热资讯!《进击的巨人》最终季完结篇开播 前篇拿下豆瓣9.7分:改编超越原作
核心部件100%国产!东风新一代商乘通用氢燃料电池产品完成
世界热文:同档网络无敌!一加Ace 2V搭载自研的游戏云专网技术
第五章 运输层
代表建议试行十二年义务教育:中考定终身太早 拒绝小学初中内卷
一男子和峨眉山猴子练搏击互殴 当事人回应:条件反射、请勿模仿
【全球新要闻】(数据库系统概论|王珊)第九章关系查询处理和关系优化-第二节:查询优化
轻松玩转Makefile | 企业项目级Makefile实例
精选! 《狂飙》“大嫂”高叶上手小米13:徕卡人像实拍样张美呆
天天时讯:3端通用!腾讯视频VIP会员年卡148元到手
当前快讯:董明珠称格力不看文凭只看能力:研究生到一线生产线非人才
济南动物园网红小黑猩猩“柒仔”去世:初步研判系突发疾病死亡
每日热议!奔驰4S店展车充新车 女子上门维权:被骗了、将走法律程序
天天快资讯丨突发!蔚来前实习生称遭同事强奸未遂 反被拒绝留用!公司:已成立调查组
“清籁”琴
环球观点:5-Nacos注册中心
灭蟑螂小窍门厨房_灭蟑螂小窍门
关于目录问题的总结-Python
天天即时看!实现js继承的几种方式以及他们的优缺点
今热点:AI修复图片画质和视频画质的方法
【热闻】数学建模(一):LP 问题
【新要闻】如何去除新家的甲醛_如何去除新家的甲醛
2023年2月随笔-难产的“学系列”
关注:乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 深入OpenAI与马斯克、微软的秘密,通过API轻松接入ChatGPT
天天热推荐:git clone的时候出现出现 fatal: unable to access 'https://github.com/...':OpenSSL
第125篇: 期约Promise基本特性
环球速递!kong和konga的安装部署
视焦点讯!腾讯云短信的使用方法
06while循环
环球热头条丨外星人AW620M无线鼠标上市:26000 DPI、140小时长续航
世界简讯:PC优化翻车!《卧龙:苍天陨落》官方道歉:将尽快推出更新补丁
环球头条:多线程全面总结
怎么注册微信公众号?
Pro版同款!荣耀Magic5至臻版影像泄露:5000万像素旗舰三摄
今日要闻!《LOL》英雄价格正式调整!全面下调
全球热议:理想L9车主实惨:白天打开星环模式灯 扣1分罚款100元?
iPhone良品率不足50%也不怕 富士康又在印度设立新工厂
小鹏汽车欲靠P7“回血”:老款清库再降3.5万、新车下周上市
降价后真香了!特斯拉中国2月销量出炉:暴涨130%
9.98万起杀疯!比亚迪王朝系列2月销量超10万台:秦PLUS贡献3成
2月新能源汽车销量榜:比亚迪一家占比近4成 第三名暴走
世界资讯:委员蒋胜男谈35岁职场危机:根源是“996” 必须改变
今日讯!中国性能车!全新领克03 TCR赛车官图发布:售价超百万
排查系统执行SQL与数据库直接执行结果不一致的问题
每日资讯:详细剖析|袋鼠云数栈前端框架Antd 3.x 升级 4.x 的踩坑之路
记录--手摸手带你撸一个拖拽效果
天天讯息:VSCode官方的配置同步方案
快报:144MB缓存立大功 AMD锐龙7000X3D内存自由:4800都稳赢i9
环球观点:AMD RX 7900 XT价格全面雪崩:沦落到RTX 4070 Ti的级别
《旷野之息》发售6周年:续作《塞尔达传说:王国之泪》发布新预告
当前视点!中国围棋第一人易主!李轩豪超越柯洁 AI立大功
环球快讯:vivo推出“手语翻译官”应用:准确率可达80%以上
网络通信——TCP “三次握手“、“四次挥手“ 详解
PHP语言在线代码运行编译工具推荐
今日报丨JavaScript 回调函数属于闭包?
全球快看:ChatGPT开放API,上来就干到最低价,可以人手一个ChatGPT了
全球新动态:Spring事务使用注意事项
【全球独家】限制儿童支付金额方便了!微信青少年模式升级:一键开启上线
三排七座!仰望U8内饰曝光:比亚迪首款百万豪车来了
世界热门:刚失败一次后 日本不放弃:新一代运载火箭尝试再度发射
热到离谱?首个冲上20℃的北方省会诞生 下周或破30℃
欧洲2035年禁售燃油车要黄?德国公然反对!意大利:我也不同意
环球精选!登月用!中国新一代载人火箭预计2027年首飞
天天即时:《狂飙》“大嫂”高叶上手小米13:女神持机美如画
全球观速讯丨火山引擎 DataTester:A/B 实验如何实现人群智能化定向?
环球快资讯丨Redis分布式锁常见坑点分析
世界今日讯!eas里客户端保存,提交里增加校验规则和必填
访问者模式
世界微动态丨网友偶遇眼镜王蛇求助 博物杂志:务必远离、打输住院打赢坐牢
世界今亮点!Vtuber因直播《霍格沃茨之遗》被骚扰 宣布毕业
天天讯息:委员建议研究生招生规模动态扩大:缓解考研难
全球聚焦:收个滴滴Offer:从小伙三面经历,看看需要学点啥?
环球热资讯!Study for Go! Chapter one - Type
环球最新:手写模拟Spring底层原理-Bean的创建与获取