iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle索引扫描
  • 627
分享到

Oracle索引扫描

2024-04-02 19:04:59 627人浏览 八月长安
摘要

索引唯一扫描:是针对唯一性索引大扫描,它仅仅适用于where条件里是等值查询的目标sql,因为扫描的对象是唯一性索引,只扫描索引高度这么多个索引块就停止了,索引的唯一扫描的结果至多只返回一条记录,

  1. 索引唯一扫描:是针对唯一性索引大扫描,它仅仅适用于where条件里是等值查询的目标sql,因为扫描的对象是唯一性索引,只扫描索引高度这么多个索引块就停止了,索引的唯一扫描的结果至多只返回一条记录,索引的唯一扫描,扫描索引高度-2个分支块,永远只扫描一个叶子块

  2. 索引范围扫描:索引范围扫描,扫描索引高度-2个分支快,要扫描N多叶子块,取决于where条件,索引范围扫描是单块读,因为物理存储是不连续的。select * from test where id<=1000;访问路径:ROOT -B1 -L1 -L7

     

 

 

 

索引是排序的,从左到右升序排,最左最小,最右做大,索引默认从左向右扫描,也可以加hint倒着扫描:

SQL> select *from test where object_id<=20;
19 rows selected.

Execution Plan
----------------------------------------------------------
Plan hash value: 1069979465
---------------------------------------------------------------------------------------
| Id  | Operation       | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |       |    19 |  3933 |     3 (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID | TEST   |    19 |  3933 |     3 (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN DESCENDING| IDX_ID |    19 |       |     2 (0)| 00:00:01 |
---------------------------------------------------------------------------------------

3.索引的叶子块只存rowid和列的键值,比表的数据块存的更多的值,

select object_id from test where object_id<100;
select object_id from test where object_id<1000

性能是一样的,索引扫描最大问题在于回表,如果回表再过滤,就最坑爹了,错误的INDEX RANGE SCAN,返回数据很多和大量回表

4.反键索引,

如果用sequence作为主键,如果insert数据,会不断更新右边的叶子块,dml操作,同一个块,同时只有一个进程去持有,CBC持有,latch: cache buffers chains,在高并发的insert环境中,sequence主键很容易产生热点块,解决办法,把主键处理成随机的,比如手机号或者***号,如果已经用sequence,可用反转索引把叶子块打乱来解决。另外一种解决办法:sid+sequence+pid,反键索引多范围扫描影响大。

5. INDEX SKIP SCAN 索引跳跃扫描。单块读 只可能发生在组合索引上,引导列(组合索引第一列)没有包含在where条件中,并且引导列基数很低。INDEX SKIP SCAN 一般来说只会返回少量数据,如果返回大量数据,说明该执 行计划可能有问题,也就是说索引建立不对。等待事件:db file sequential read HINT: INDEX_SS(表名/别名 索引名)

6.INDEX FULL SCAN (MIN/MAX) 索引最小/最大值扫描。单块读 通常发生在 select max(xxx) 或者
select min(xxx)并且xxx列上有索引。
等待事件:db file sequential read 我们几乎观察不到,因为只需读
取索引高度相同的index block数。
HINT 无需指定,有索引会自动走INDEX FULL SCAN(MIN/MAX)
把select max(id) ,min(id) from test;

改成select (select max(id) from test) max,(select min(id) from test) min from dual,如果不改写,需要扫描所有的叶子块,为index full scan

==index uniqe scan ,index range scan,index skip scan 发生以上3种扫描方式的重大前提是必须有where条件,而index full scan和index fast full scan不需要where条件也可以走,

您可能感兴趣的文档:

--结束END--

本文标题: Oracle索引扫描

本文链接: https://www.lsjlt.com/news/37863.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle索引范围扫描操作流程是什么
    本篇内容主要讲解“Oracle索引范围扫描操作流程是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle索引范围扫描操作流程是什么”吧!索引范围扫描就...
    99+
    2024-04-02
  • MySQL中的全表扫描和索引树扫描 的实例详解
    目录引言实例引言 在学习mysql时,我们经常会使用explain来查看sql查询的索引等优化手段的使用情况。在使用explain时,我们可以观察到,explain的输出有一个很关键...
    99+
    2024-04-02
  • 怎么进行mysql索引覆盖扫描优化
    本篇文章为大家展示了怎么进行mysql索引覆盖扫描优化,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。覆盖扫描即直接在索引中扫描出结果返回给客户端,不需要根据索引再去...
    99+
    2024-04-02
  • PostgreSQL索引扫描时为什么indexonlyscan不返回ctid
    我们都知道在PostgreSQL中使用索引扫描时,是通过索引中存储的ctid去表中得到数据的。同时在PostgreSQL中如果要查询的列都在索引中,我们还可以使用index only...
    99+
    2024-04-02
  • PostgreSQL索引扫描成本估算中的函数分析
    这篇文章主要介绍“PostgreSQL索引扫描成本估算中的函数分析”,在日常操作中,相信很多人在PostgreSQL索引扫描成本估算中的函数分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
  • Swoole和Workerman对PHP与MySQL的索引扫描和索引覆盖查询的优化方法
    引言:在大规模的Web应用中,数据库查询的性能优化是至关重要的。索引是一种非常有效的优化手段之一,可以加快查询的速度。针对PHP与MySQL的索引扫描和索引覆盖查询,本文将介绍如何使用Swoole和Workerman来进行优化,并提供具体的...
    99+
    2023-10-21
    优化方法 Workerman 关键词:swoole
  • 列索引 8 上的扫描错误,名称“replicated”:不支持扫描,将 driver.Value 类型 uint8 存储为 **bool 类型
    问题内容 我使用 sqlx 将 PostgreSQL boolan[] 选择到 Golang 结构中,其中目标结构值为 []*bool。 type App struct { A...
    99+
    2024-02-12
  • MATLAB 实现zigzag扫描(z字形扫描)
    Zigzag扫描(也称为Z字形扫描)是一种图像编码技术,用于将二维矩阵中的元素按照特定的顺序排列。以下是MATLAB实现Zigzag...
    99+
    2023-10-12
    MATLAB
  • oracle怎么避免全表扫描
    创建索引:通过在查询条件中使用索引字段,可以帮助Oracle优化查询计划,避免全表扫描。 编写高效的SQL语句:避免使用通配...
    99+
    2024-04-09
    oracle
  • 主动扫描-Nmap-端口、系统、服务扫描
    目录 一、使用Nmap进行端口扫描 1、关于端口的介绍 ① 个数 ② 作用 ③ 分类 2、Nmap中的各种端口扫描技术 ① SYN扫描 ② Connect扫描 ③ UDP扫描 ④ 端口扫描范围的确定 二、使用Nmap扫描目标系统 1、识别原...
    99+
    2023-10-26
    服务器 linux 网络 网络协议 web
  • 如何使用Java实现分布式索引和二维码扫描的集成?
    Java作为一种强大的编程语言,可以实现各种应用程序的开发。本文将介绍如何使用Java实现分布式索引和二维码扫描的集成,帮助读者更好地理解这一过程。 一、分布式索引的实现 分布式索引是指将索引数据存储在多个节点上,以提高查询效率和可靠性。在...
    99+
    2023-09-26
    分布式 索引 二维码
  • python端口扫描
    前段时间写了个端口扫描的python脚本,发现现在忘记的差不多了,赶紧记录下来吧,虽然是并发的,但是在实际的使用场景中,如果扫描的机器过多,依旧有性能上的问题,好在我需要扫描的机子就那么几台.脚本写的生烂...下面附源码:#!/usr/bi...
    99+
    2023-01-31
    端口扫描 python
  • oracle中SQL全表扫描过程分析
    本篇内容主要讲解“oracle中SQL全表扫描过程分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“oracle中SQL全表扫描过程分析”吧!以下SQL 走了全...
    99+
    2024-04-02
  • nmap漏洞扫描
    预计更新 第一章 nmap漏洞扫描 nmap漏洞扫描的基本原理和技术 nmap漏洞扫描的常用选项和参数 nmap漏洞扫描的实战案例 第二章 nmap网络探测和映射 nmap网络探测和映射的基本原理和技...
    99+
    2023-09-22
    安全 web安全 php
  • Linux扫描磁盘
    Linux磁盘扩容后,用fldsk命令没有找到扩容后的盘,因为业务不能中断,所以暂时不能重启服务器来扫描磁盘。这里可以用如下方式扫描磁盘。 首先,查找扫描 ls /sys/class/scsi_host/ 然后执行 echo ‘- –...
    99+
    2023-08-19
    linux 服务器 运维
  • spring中@ComponentScan自动扫描并指定扫描规则
    目录1.使用注解配置包扫描1.1.创建相关类1.2.SpringBoot启动类默认就有配置@ComponentScan1.3.查看IOC中的bean的名称2.扫描时排除注解标注的类3...
    99+
    2023-05-18
    @ComponentScan自动扫描 spring @ComponentScan扫描
  • springboot扫描引入jar包的service等组件方式
    在pom中引入对应的依赖,如果引入的三方jar包跟该项目Application所在包目录包含被依赖jar包目录, 即下面的情况: 像上面这种包组织的话,是不需要额外加入任何配置的(...
    99+
    2024-04-02
  • Oracle服务扫描工具Oscanner有什么用
    这篇文章主要为大家展示了“Oracle服务扫描工具Oscanner有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle服务扫描工具Oscanner有什么用”这篇文章吧。Oracle...
    99+
    2023-06-04
  • 如何解决索引扫描时对同一个叶子块访问多次的问题
    本篇内容介绍了“如何解决索引扫描时对同一个叶子块访问多次的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2024-04-02
  • 代码扫描工具
    代码扫描工具1. sonar2.ali的stc平台用的是:findbugs 和 pmd参考:测试框架:使用SONAR分析代码质量 配置sonar、jenkins进行持续审查 1、Sonar介绍 Sonar是一个用于代码质量管理的开源平台,用...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作