【CMU15-445 Part-15】Query Planning Optimization II

Part15-Query Planning & Optimization II

Selection Statistics

维护每张表中的基本主要信息也就是tuple数量 N R N_R NR以及每个属性中不同值的数量 V ( A , R ) V(A,R) V(A,R) N R N_R NR关系R中的元组数量,单独维护,不能用page * 每个page中的tuple数,因为mvcc 或者 填不满tuple。selection cardinality (SC(A,R)) 选择基数,tuple数量除以属性A下 去重之后值的数量来计算出 选择基数

假设数据均匀分布,data uniformity

Complex Predicates

selectivity(sel)选择率针对该表的一个给定的选择条件P,会计算出该表中有多少符合条件的tuple。

例子: V(age,people) 0-4, Nr = 5,Equality Predicate:A=constant → sel(A = const) = SC§ / Nr。 sel(age=2) = 1 5 \frac{1}{5} 51

Range Predict:sel(A ≥ a) = (Amax - a) / (Amax - Amin) Example : sel(age ≥ 2) = (4-2) / (4-0) = 1/2

Negation Query:sel (not P) = 1 - sel§, sel(age≠2) = 1-1/5 = 4/5

条件选择率selectivity ≈ Probability

Conjunction:sel(P1 ∩ \cap P2) = sel(P1) * sel(P2)

Disjunction: sel(P1 ∪ \cup P2) = sel(P1) + sel(P2) - sel(P1) * sel(P2)

上述假设前提1. uniform data 2. independent predicates 3. inclusion principle(嵌套原则:inner table 的 tuple outer table中一定有匹配)

Cost Estimations

data values uniformly distributed

Untitled

equi-width Histogram

Untitled

Histograms with Quantiles

调整bucket的宽度,使得每个bucket的count总和都大致相等

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Sampling

收集samples来维护一张sample样本表,然后根据该样本来衍生出统计信息,样本来估测总体。

Single-Relation Query Planning

  • 循序扫描
  • binary search
  • index scan
  • heuristics 启发式方法

OLTP Query Planning

本质上鉴定这个查询是否是sargable(search argument able)的

  • 通常pick the best index
  • Join几乎总是在小基数的外键关系上
  • 可以用简单的启发式规则就能实现

Multi-Relation Query Planning

限制搜索空间,System R:只考虑左深连接树 left-deep join tree,

join operator 可以任意顺序交换来join 但是得到的结果都是一样的。

Untitled

why left-deep join tree? pipelined model可以不用吧中间结果写入临时文件,是流水的

枚举查询计划

  • Enumerate the orderings:left -deep tree#1 , …#2
  • Enumerate the plans for each operator, hash join\sort-merge join \ nested-loop join …
  • Enumerate the acess paths for each table, index #1,#2 ,seq scan …

Dynamic Programming

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Postgres Optimizer

  • 传统的dynamic programming Approach

  • 还有genetic Query Optimizer GEQO遗传查询优化器,查询过于复杂的时候就会选择用遗传算法, 比如≥12个表join就用。模拟退火、遗传算法、启发式

    Untitled

    snowflake scheme,对超大表进行拆分,数亿条很长的购买记录进行解耦,雪花模型就是:fact table 在中心,然后diemension在四周,

Nested Sub-Queries

  • rewrite to de-correlate and/or flatten them,重写查询来去掉彼此关联性,扁平化处理
  • 将内部查询提取出来作为一个单独的查询执行,然后把查询结果传入第一个查询
select name from sailors as Swhere exists(select * from reserves as Rwhere S.sid = R.sidand R.day = '2018-10-15'
)
# ------------------------------------
select name from sailors as S, reservers AS R
where S.sid = R.sidand R.day = '2018-10-15'

内外查询是相关的,重写成下面

例子,取出nested block 保存为某个变量,

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/96100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 无废话-基础知识函数详解

函数定义 函数是一段可重复使用的代码块,用于实现特定的功能。 类似的前面已学过print(),len(),input(),str(),list(),tuple()等内置函数 自定义函数 内置函数是python类库的已定义好的函数,如果某些功能不能满足时,需要我们自定义函数&am…

网页版”高德地图“如何设置默认城市?

问题: 每次打开网页版高德地图时默认定位的都是“北京”,想设置起始点为目前本人所在城市,烦恼的是高德地图默认的初始位置是北京。 解决: 目前网页版高德地图暂不支持设置起始点,打开默认都是北京,只能将…

假期题目整合

1. 下载解压题目查看即可 典型的猪圈密码只需要照着输入字符解开即可得到答案 2. 冷门类型的密码题型,需要特意去找相应的解题思路,直接百度搜索天干地支解密即可 3. 一眼能出思路他已经给了篱笆墙的提示提示你是栅栏密码对应解密即可 4. 最简单的社会主…

SLAM面试笔记(8) — 计算机视觉面试题

目录 问题1:目标检测的算法分类 问题2:卷积神经网络的组成 问题3:输入层的作用 问题4:卷积层作用 问题5:卷积核类型 问题6:11卷积核作用 问题7:卷积核是否越大越好 问题8:棋…

纯css实现3D鼠标跟随倾斜

老规矩先上图 为什么今天会想起来整这个呢?这是因为和我朋友吵架, 就是关于这个效果的,就是这个 卡片懸停毛玻璃效果, 我朋友认为纯css也能写, 我则坦言他就是在放狗屁,这种跟随鼠标的3D效果要怎么可能能用纯css写, 然后吵着吵着发现,欸,好像真能用css写哦,我以前还写过这种…

大华城市安防系统平台任意文件下载漏洞

一、漏洞描述 大华城市安防监控系统平台是一款集视频、报警、存储、管理于一体的综合安防解决方案。该平台支持多种接入方式,包括网络视频、模拟视频、数字视频、IP电话、对讲机等。此外,该平台还支持多种报警方式,包括移动侦测、区域入侵、…

7 航空公司客户价值分析

第7章 航空公司客户价值分析 7.1 了解航空公司现状与客户价值分析7.1.1 了解航空公司现状7.1.2 认识客户价值分析7.1.3 熟悉航空客户价值分析的步骤与流程 7.2 预处理航空客户数据7.2.1 处理数据缺失值与异常值7.2.2 构建航空客户价值分析的关键特征1. RFM模型介绍2. RFM模型结…

PyTorch入门之【AlexNet】

参考文献:https://www.bilibili.com/video/BV1DP411C7Bw/?spm_id_from333.999.0.0&vd_source98d31d5c9db8c0021988f2c2c25a9620 AlexNet 是一个经典的卷积神经网络模型,用于图像分类任务。 目录 大纲dataloadermodeltraintest 大纲 各个文件的作用&…

通过ElementUi在Vue搭建的项目中实现CRUD

🏅我是默,一个在CSDN分享笔记的博主。📚📚 🌟在这里,我要推荐给大家我的专栏《Vue》。🎯🎯 🚀无论你是编程小白,还是有一定基础的程序员,这个专栏…

摄影后期图像编辑软件Lightroom Classic 2023 mac中文特点介绍

Lightroom Classic 2023 mac是一款图像处理软件,是数字摄影后期制作的重要工具之一,lrc2023 mac适合数字摄影后期制作、摄影师、设计师等专业人士使用。 Lightroom Classic 2023 mac软件特点 高效的图像管理:Lightroom Classic提供了强大的图…

WPF 实现点击按钮跳转页面功能

方法1. 配置环境 首先添加prism依赖项&#xff0c;配置好所有文件。需要配置的有两个文件&#xff1a;App.xaml.cs和App.xaml App.xaml.cs using System.Data; using System.Linq; using System.Threading.Tasks; using System.Windows;namespace PrismDemo {/// <summa…

输入电压转化为电流性 5~20mA方案

输入电压转化为电流性 5~20mA方案 方案一方案二方案三 方案一 XTR111是一款精密的电压-电流转换器是最广泛应用之一。原因有二&#xff1a;一是线性度非常好、二是价格便宜。总结成一点&#xff0c;就是性价比高。 典型电路 最终电路 Z1二极管处输出电流表达式&#xff1a;…

【Python】读取显示pgm图像文件

文章目录 零. 前言一. pgm基本概念二. pgm基本信息读取三. pgm图像渲染四. 代码优化 零. 前言 这学期要学多媒体信息隐藏对抗&#xff0c;发现其中的图像数据集文件都是pgm文件形式的。虽然是图像文件&#xff0c;但是却不能直接通过图像查看器来打开&#xff0c;上网一搜&…

1、内核加载模块

一、静态加载 1、新功能源码与内核源码一起编译进uImage文件内 新功能源码与Linux内核源码在同一目录结构下在linux-3.14/drivers/char/目录下编写hello.c文件&#xff0c;内容如下 #include <linux/module.h> #include <linux/kernel.h>int __init myhello_ini…

英语四六级高频核心词(故事版)

第一组&#xff1a;" A Century of Community Effort to Improve Quality of Life and Climate" In the early years of the 20th century, a small community found itself facing a decade of challenges. The most pressing issue was the mental quality of life…

理解C++强制类型转换

理解C强制类型转换 文章目录 理解C强制类型转换理解C强制转换运算符1 static_cast1.1. static_cast用于内置数据类型之间的转换1.2 用于指针之间的转换 1.3 用于基类与派生类之间的转换2. const_cast2.1示例12.2 示例2——this指针 3.reinterpret_cast4.dynamic_cast C认为C风格…

多普勒频率相关内容介绍

图1 多普勒效应 1、径向速度 径向速度是作用于雷达或远离雷达的速度的一部分。 图2 不同的速度 2、喷气发动机调制 JEM是涡轮机的压缩机叶片的旋转的多普勒频率。 3、多普勒困境 最大无模糊范围需要尽可能低的PRF&#xff1b; 最大无模糊速度需要尽可能高的PRF&#xff1b…

国庆看坚如磐石

坚如磐石上映了&#xff0c;可以在爱奇艺观看。 而博主在使用蓝牙耳机连接电脑的过程中&#xff0c;发现没有蓝牙开启选项&#xff0c;并且在服务的设备管理器中也没有找到&#xff0c;很明显这是缺少驱动导致的&#xff0c;因此便去联想官方网站下载对应的驱动。 这里可以输入…

【LLM】主流大模型体验(文心一言 科大讯飞 字节豆包 百川 阿里通义千问 商汤商量)

note 智谱AI体验百度文心一言体验科大讯飞大模型体验字节豆包百川智能大模型阿里通义千问商汤商量简要分析&#xff1a;仅从测试“老婆饼为啥没有老婆”这个问题的结果来看&#xff0c;chatglm分点作答有条理&#xff08;但第三点略有逻辑问题&#xff09;&#xff1b;字节豆包…

数据结构与算法(四):哈希表

参考引用 Hello 算法 Github&#xff1a;hello-algo 1. 哈希表 1.1 哈希表概述 哈希表&#xff08;hash table&#xff09;&#xff0c;又称散列表&#xff0c;其通过建立键 key 与值 value 之间的映射&#xff0c;实现高效的元素查询 具体而言&#xff0c;向哈希表输入一个键…