Oracle SQL优化基本概念:直方图

在Oracle数据库中,直方图(Histograms)是优化器用于收集和存储列数据分布统计信息的一种机制。直方图主要用于解决SQL查询优化中的问题,尤其是当表的某一列数据分布不均匀或存在大量重复值时。

正常情况下,如果没有直方图,Oracle优化器默认假设列数据在最小值和最大值之间均匀分布,并基于此来估算行数、选择合适的执行计划。然而,在实际业务场景中,这种假设往往并不准确,导致优化器选择的执行计划可能并不是最优的,从而影响SQL语句的执行效率。

直方图的作用在于:

  1. 精确描述分布:它会按照一定的规则(例如等深、等宽、混合型等)将列数据划分为多个桶(buckets),每个桶代表一定范围的数据值及其出现的频次。
  2. 优化器决策依据:有了直方图之后,优化器可以根据各桶内数据的实际分布情况,更准确地估计某个WHERE子句条件下返回的记录数量(cardinality),从而制定出更加高效的成本计算模型和执行计划。

创建直方图后,对于包含相关列作为过滤条件的SQL查询,Oracle的CBO(Cost-Based Optimizer)可以利用这些统计信息生成更为精准的成本评估,进而选择最优的执行路径,提升查询性能。

总之,在特定的列数据分布不均匀的情况下,为这样的列创建并维护直方图统计信息是数据库性能调优的重要手段之一。不过需要注意的是,直方图也会占用额外的存储空间,并且在某些情况下可能会导致优化器选择非最优执行计划,因此是否需要使用直方图以及如何配置直方图都需要根据实际情况进行细致分析与调整。

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

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

相关文章

SQL-Labs靶场“32-33”关通关教程

君衍. 一、32关 GET单引号闭合宽字节注入1、源码分析2、宽字节注入原理3、联合查询注入4、updatexml报错注入5、floor报错注入 二、33关 GET单引号addslashes逃逸注入1、源码分析2、联合查询注入3、updatexml报错注入4、floor报错注入 SQL-Labs靶场通关教程: SQL注入…

安装python、pycharm,打好基础,准备飞起

python安装使用 安装python安装包 以下为自定义安装python安装包,无特殊要求可直接进行安装。 勾选Add Python 3.6 to PATH, 然后点击 Customize installation,进行自定义安装。 所有的都勾上,然后点击Next。 可选择自己需要…

阿里提前批(阿里云)一面30min

今日分享阿里云一面,给要准备就业的宝子们一点方向 1、自我介绍与项目介绍 2、八股文 Java的特性、Java的oop? Java有哪些方法来实现线程安全? 讲讲Spring中的AOP与IOC? synchronized锁怎么用? Mysql中右模糊查询用…

(附数据集)基于lora参数微调Qwen1.8chat模型的实战教程

基于lora微调Qwen1.8chat的实战教程 日期:2024-3-16作者:小知运行环境:jupyterLab描述:基于lora参数微调Qwen1.8chat模型。 样例数据集 - qwen_chat.json(小份数据) - chat.json(中份数据&…

Day39:安全开发-JavaEE应用SpringBoot框架Actuator监控泄漏Swagger自动化

目录 SpringBoot-监控系统-Actuator SpringBoot-接口系统-Swagger 思维导图 Java知识点: 功能:数据库操作,文件操作,序列化数据,身份验证,框架开发,第三方组件使用等. 框架库:MyB…

hot100 -- 矩阵

👂 Peter Pan - kidult. - 单曲 - 网易云音乐 👂 Bibliothque(图书馆) - Jasing Rye - 单曲 - 网易云音乐 目录 🌼前言 🌼二分模板 🎂矩阵置零 AC 标记数组 AC 标记变量 🚩…

【JAVA】JAVA方法的学习和创造

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不…

阿里云分布式深度学习训练架构Whale

阿里云分布式深度学习训练架构Whale 阿里云分布式深度学习训练架构Whale 参考文献 Whale 基于 Tensorflow 深度学习分布式训练框架|学习笔记Whale: Efficient Giant Model Training over Heterogeneous GPUs阿里云机器学习平台 PAI 论文高效大模型训练框架 Whale 入选 USENIX A…

【04】WebAPI

WebAPI 和标准库不同,WebAPI 是浏览器提供的一套 API,用于操作浏览器窗口和界面 WebAPI 中包含两个部分: BOM:Browser Object Model,浏览器模型,提供和浏览器相关的操作DOM:Document Object Model,文档模型,提供和页面相关的操作BOM BOM 提供了一系列的对象和函数,…

OpenCV 环境变量参考

返回:OpenCV系列文章目录(持续更新中......) 上一篇: OpenCV4.9.0配置选项参考 下一篇:OpenCV4.9.0配置选项参考 引言: OpenCV是一个广泛使用的图像和视频处理开源库,拥有丰富的图像算法和函…

JS:轮播图终极版

轮播图:可触发效果 :1、按箭头符号可左右切换图片 2、到最后一张的下一张是开头第一张;开头第一张的前一张是最后一张 3、鼠标放在轮播图上时轮播图停止定时器;鼠标移开定时器继续开启 注意:图片需要自己准备且对应…

Lua中文语言编程源码-第三节,更改lualib.h Lua标准库, 使Lua支持中文关键词(与所有的基础库相关)

源码已经更新在CSDN的码库里: git clone https://gitcode.com/funsion/CLua.git 在src文件夹下的lualib.h,是Lua的标准库模块。 Lua标准库一共有有个10个库,base, 基本用不着改,所以没加中文名称。 函数声明宏名英文库名中文库…

51单片机-AT24C02(I2C总线)

目录 一,介绍及元件工作原理 7.时序结构(重要) 8.i2C总线数据帧(重要) 二,应用 一,介绍及元件工作原理 1.元件介绍 2.存储器 3.地址总线和数据总线 地址总线只能一次选中一行 4.引脚及应用…

一起学数据分析_2

写在前面:代码运行环境为jupyter,如果结果显示不出来的地方就加一个print()函数。 一、数据基本处理 缺失值处理: import numpy as np import pandas as pd#加载数据train.csv df pd.read_csv(train_chinese.csv) df.head()# 查看数据基本…

05.BOM对象

一、js组成 JavaScript的组成 ECMAScript: 规定了js基础语法核心知识。比如:变量、分支语句、循环语句、对象等等 Web APIs : DOM 文档对象模型, 定义了一套操作HTML文档的APIBOM 浏览器对象模型,定义了一套操作浏览器窗口的API 二、windo…

wsl ubuntu 安装cuda nvcc环境

wsl ubuntu 安装cuda环境: CUDA Toolkit 11.6 Downloads | NVIDIA DeveloperDownload CUDA Toolkit 11.6 for Linux and Windows operating systems.https://developer.nvidia.com/cuda-11-6-0-download-archive?target_osLinux&target_archx86_64&Distri…

二进制安全找实习记录

就安全岗而言,这里笔者仅仅面试了腾讯的科恩实验室内核安全和浏览器安全(其它的就面了一下前后端开发,这就不说了,笔者也没打算搞开发),然后倒在了一面。然后有的问题忘记了,仅仅记录一下自己回…

Word粘贴时出现“运行时错误53,文件未找到:MathPage.WLL“的解决方案

在安装完MathType后,打开word复制粘贴时报错“运行时错误53,文件未找到:MathPage.WLL” 首先确定自己电脑的位数(这里默认32位) 右击MathType桌面图标,点击“打开文件所在位置”, 然后分别找到MathPage.W…

【原理图与PCB专题】使用Cadence如何在Layout时直接互换相同功能的PIN

在实际的项目中,比如有一些排阻、FPGA、ESD二极管引脚其实是可以互换的,但是如果没有使用PinGroup属性功能,对于大公司原理图设计与PCB Layout分开的情况,我们可能需要按以下步骤: 这个步骤中存在通知和等待过程,如果存在多次(如多个器件,或是修改后调整又觉得不合适)…