首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

oracle 查询转换初探

Oracle‍‍查询转换初探 作者‍:邱大龙‍‍ 概述 Oracle查询转换器的作用是把原始sql重写为语义相同的语句,目的是为了获得更高效的sql。...查询转换主要有四种技术:子查询展开,视图合并,谓词推入,星型转换。 了解查询转换是掌握SQL优化的基础,本文将对这四种技术做一些简单的介绍。...子查询展开 子查询展开是指优化器不再把子查询作为独立的单元处理,而是转换成等价的join方式。...星型转换 星型转换为提高星型查询的效率发生,在原有条件基础上会产生新的子查询对事实表做过滤,然后通过对事实表相应连接列的位图索引做位图操作,达到过滤事实表结果集的目的。...是否开启星型转换受参数star_transformation_enabled控制,可以设置为: true:优化器将考虑基于成本的星型查询转换; false:禁止星型转换; temp_disable:优化器将考虑基于成本的星型查询转换

1.5K50

如何转换png图片为jpg图片

背景 最近在工作中会遇到需要将 png 图片转换为 jpg 图片的需求,主要原因也是 png 图片占的空间太大,如果图片数量上万张,可能就需要十几G的存储空间,所以希望转换为更小的 jpg 图片。...当然,这里并不是直接修改图片后缀为 jpg 即可,这样直接粗暴的转换可能会对图片质量有所损失,包括背景颜色会出现问题; 解决思路 实际上要将 png 图片转换为 jpg 格式的图片,其实就是从 4 通道的...png 转换为 3通道的 jpg 格式,也就是能保留原始的 RGB 三通道,只是去掉第四个通道的 alpha 通道,也就是我们需要将 RGB 通道的像素部分提取出来,然后贴到一个空白的新图片上,再保存为...代码实现 这里使用的是 Pillow 库来进行转换,然后这里需要注意不同模式的图片,处理方式还是有所不同的。...通过这种操作,原本是 128kb 的 png 图片转换为 38kb 左右的 jpg 图片,减少了接近 4 倍的存储空间,如下所示: ? ?

3.4K10

性能优化之查询转换 - 子查询

查询,是SQL中常见的一种写法。对于优化器来说,子查询是较难优化的部分。Oracle提供了多种方式,对子查询进行查询转换。...1 子查询推进 子查询推进(又称子查询推入)是指优化器将子查询提前进行评估,使得优化器可以更早地介入优化以获得更优质的执行计划。这个技术可以通过提示PUSH_SUBQ/NO_PUSH_SUBQ控制。...2 子查询解嵌套、展开 子查询解嵌套是指优化器将子查询展开,和外部的查询进行关联、合并,从而得到更优的执行计划。可以通过UNNEST/NO_UNNEST提示控制是否进行解嵌套。...4 子查询合并 在语义等价的前提下,如果多个子查询产生的结果集相同,则优化器可以使用这种技术将多个子查询合并为一个子查询。这样的好处在于减少多次扫描产生的开销。...5 子查询实体化 子查询实体化是指在上面WITH定义的查询中,将查询结果写入一张临时表中,后续的查询直接利用临时表中的数据。可以通过MATERIALIZE提示来控制。下面看个示例。

1.5K61

Oracle里的查询转换

Oracle里的查询转换,有称为查询改写,指oracle在执行目标sql时可能会做等价改写,目的是为了更高效的执行目标sql在10g及其以后的版本中,oracle会对某些类型的查询转换(比如子查询展开、...复杂视图合并等)计算成本,oracle会分别计算查询转换后的等价改写的sql的成本和原始sql的成本,如果改写后的sql的成本低于原始sql的成本,oracle才会对目标sql执行查询转换。...指优化器不在将子查询当做一个独立的单元来处理,而是将该子查询转为它自身和外部查询之间的等价的表连接,将子查询拆开, 将子查询中的表、视图从子查询中拿出来,然后后外部查询的表、视图做连接,或者会把该子查询转换为一个内嵌视图...2 对���不拆开的子查询会把它转换为一个内嵌视图的子查询展开。 对于第一种情况,Oracle 10g及以后的版本中,Oracle也不会考虑子查询展开的成本。...  oracle将目标sql等级的改写成按分区union all的形式,不可用index union all可用index 11g r2引入 对同一个目标sql而言,oracle可能会采用不止一种的查询转换手段

1.8K20
领券