Oracle的Index-2(转)

Oracle的Index-2[@more@]二讲,索引也有好坏 索引有 B tree 索引, Bitmap 索引, Reverse b tree 索引, 等。最常用的是 B tree 索引。 B 的全称是Balanced , 其意义是,从 tree 的 root 到任何一个leaf ,要经过同样多的 level. 索引可以只有一个字段(Single column), 也可以有多个字段(Composite),最多32个字段,8I 还支持 Function-based index. 许多developer 都倾向于使用单列B 树索引。 所谓索引的好坏是指: 1,索引不是越多越好。特别是大量从来或者几乎不用的索引,对系统只有损害。OLTP系统每表超过5个索引即会降低性能,而且在一个sql 中, Oracle 从不能使用超过 5个索引。 2,很多时候,单列索引不如复合索引有效率。 3,用于多表连结的字段,加上索引会很有作用。 那么,在什么情况下单列索引不如复合索引有效率呢?有一种情况是显而易见的,那就是,当sql 语句所查询的列,全部都出现在复合索引中时,此时由于 Oracle 只需要查询索引块即可获得所有数据,当然比使用多个单列索引要快得多。(此时,这种优化方式被称为 Index only access path) 除此之外呢?我们还是来看一个例子吧: 在 HP(Oracle 8.1.7) 上执行以下语句: select count(1) from mytabs where coid>=130000 and issuedate >= to_date ('2001-07-20', 'yyyy-mm-dd')。 一开始,我们有两个单列索引:I_mytabs1(coid), I_mytabs2(issuedate), 下面是执行情况: COUNT(1) ---------- 6427 Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=384 Card=1 Bytes=11) 1 0 SORT (AGGREGATE) 2 1 TABLE ACCESS (BY INDEX ROWID) OF 'T_MYTABS' (Cost=384 Card =126 Bytes=1386) 3 2 INDEX (RANGE SCAN) OF 'I_MYTABS2' (NON-UNIQUE) (Cost=11 Card=126) Statistics ---------------------------------------------------------- 172 recursive calls 1 db block gets 5054 consistent gets 2206 physical reads 0 redo size 293 bytes sent via SQL*Net to client 359 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 5 sorts (memory) 0 sorts (disk) 1 rows processed 可以看到,它读取了7000个数据块来获得所查询的 6000多行。 现在,去掉这两个单列索引,增加一个复合索引I_mytabs_test ( coid, issuedate), 重新执行,结果如下: COUNT(1) ---------- 6436 Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=1 Bytes=11) 1 0 SORT (AGGREGATE) 2 1 INDEX (RANGE SCAN) OF 'I_MYTABS_TEST' (NON-UNIQUE) (Cost=3 Card=126 Bytes=1386) Statistics ---------------------------------------------------------- 806 recursive calls 5 db block gets 283 consistent gets 76 physical reads 0 redo size 293 bytes sent via SQL*Net to client 359 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 3 sorts (memory) 0 sorts (disk) 1 rows processed 可以看到,这次只读取了300个数据块。 7000块对300块,这就是在这个例子中,单列索引与复合索引的代价之比。这个例子提示我们, 在许多情况下,单列索引不如复合索引有效率。 可以说,在索引的设置问题上,其实有许多工作可以做。正确地设置索引,需要对应用进行总体的分析。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9417382/viewspace-932299/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9417382/viewspace-932299/

计算机组成原理(第三版)唐朔飞-第七章指令系统-课后习题 机器字长是指CPU一次能处理数据的位数通常与CPU的寄存器位数有关。指令字长是指机器指令中二进制代码的总位数。存储字长是指存储单元中存放二进制代码的总位数。三者可以相等也可以不等视不同机器而定。答:OP(4位)A1(6位)A_1(6位)A1​(6位)A2(6位)A_2(6位)A2​(6位)设二地址指令格式为该指令系统的基本格式,4位操作码共有16种编码,其中13种用来定义二地址指令,还剩3种可用作扩展标志。一地址指令条数=3∗26=192。 阅读详情

相关推荐

FOC实战笔记:RC吸收电路的设计考量与参数调优

本文深入探讨了FOC驱动器中RC吸收电路的设计与调优。针对MOS管开关过程中的电压尖峰问题,详细阐述了RC电路的钳位与能量吸收原理,并提供了从参数计算、实验调试到布局布线的完整实战指南,旨在帮助工程师有效提升系统可靠性与稳定性。

weixin_29219539的博客 273

index2.html

<html> <head> <title>这是我的第二个网页</title> </head> <body> <h1>这是我的第二个网页</h1> <!-- HTML的注释 标签一般成对出现,但是也存在一些自结束标签 注释不能嵌套 <img> <img /> <input> <input /> --

weixin_47952737的博客 2003

用 Coze 打造纯自动化 AI 情报助手

本文将引导您逐步构建一个简易的AI情报助手,从提示词到工作流,再到卡片消息,详细讲解了如何利用Coze平台开发自动化工具。过程简单易懂,何不亲自动手一试?如果您对此类内容感兴趣,敬请关注本作者。未来,我将带来更多精彩的AI工具教程,助您迅速掌握各类AI应用。在这个AI时代,让您领先一步。t=O83A2AGI.NET AI 教程 震撼!用 Coze 打造纯自动化 AI 情报助手震撼!

xinzhaobuxuan的博客 2531

ORACLE存储之INDEX解析

听过不少次关于ORACLE基础的课程, 但是每次都印象不深, 想来主要是对那些概念等没有一个感性的认识, 而且平时实际开发的时候, 也不会怎么去关心那些底层的东西.前面, 有大段时间的study, 所以对一些基本的东西稍微研究了...

congfu1973的博客 188

全桥LLC谐振变换器设计与双环控制策略详解

LLC谐振变换器作为高频开关电源的核心拓扑,通过谐振腔实现软开关特性,显著提升转换效率(可达96%以上)。其工作原理基于谐振电感、电容的协同作用,当开关频率接近谐振点时实现ZVS/ZCS。在工业电源、电动汽车充电等场景中,电压电流双环控制策略通过引入电流内环和竞争仲裁机制,有效改善动态响应(实测负载跳变时电压跌落减少60%)。数字控制实现时需注意ADC采样同步和PWM更新时序,而谐振参数测量与温升管理则是工程实践的关键。

weixin_29189987的博客 255

【Labview】对连续采集数据的一种采样方法

图1如图1,想要对这样一个连续信号进行数据点的采集,我根据网上收集到的方法,在此分享一下最终的结果。可以拓展结合文件的写入,完成对连续信号的采集和输出。 已知: 一个连续信号,如图1. 目标: 设定一定采集点个数、采集点时间间隔、和采集周期次数,得到这条连续信号的数据点,如图2. 图2 方法如下: 主要利用的是队列的方法。 在连续信号生成的时候,不断的写入队列,并且清除队列。 ...

李时珍食疗志的博客 1万+

oracle 函数索引

oracle中创建函数索引即是 你用到了什么函数就建什么函数索引,比如substr select * from table where 1=1 and substr(field,0,2) in ('01') 创建索引的语句就是 create index indexname on table(substr(fileld,0,2)) online nologging ; 创建索...

tang_jian_dong的博客 1万+

FMT(基于rtthread)开源代码编译 win10下编译环境搭建及编译

FMT(基于rtthread)开源代码编译 win10下编译环境搭建及编译 什么是Firmament? Firmament (FMT) 是一款基于模型设计 (Model-Based-Design, MBD) 的开源自驾仪,可被用来快速构建无人机,无人车,无人船,机器人等平台的控制系统。 系统主要由两部分构成. FMT-Firmware: 一个基于C/C++开发的稳定、高性能的嵌入式系统. FMT-Model: 一个基于MATLAB/Simulink开发的仿真框架以及算法库. 昨天得知FMT开源飞控项目已经开

weixin_45786595的博客 2872

Oracle的Index-2(转)

Oracle的Index-2(转) Rounders | 06 八月, 2007 17:33 Oracle的Index-2 二讲,索引也有好坏 索引有 B tree 索引, Bitmap 索引, Reverse b tree 索...

congli3478的博客 110

【深度排查】VScode 远程 SSH 连接失败:从网络握手到服务部署的全链路诊断指南

本文详细解析了VScode远程SSH连接失败的常见原因及解决方案,从基础网络排查到SSH服务配置,再到VScode特有的问题处理。特别针对Ubuntu和TrueNAS系统提供了具体配置建议,帮助开发者快速解决'Could not establish connection'等连接问题,提升远程开发效率。

weixin_30301449的博客 446

CST软件中SPICE模型的高效导出与转换技巧(txt到cir实战指南)

本文详细介绍了在CST Studio Suite中高效导出与转换SPICE模型的实战技巧,重点讲解了如何将txt格式的模型转换为通用的cir格式。内容涵盖三种模型存在形式的处理方法、格式检查与内容清理、端口一致性验证等关键步骤,并提供了利用LTspice Export功能、批处理脚本以及结果一致性校验等进阶指南,帮助工程师实现场路协同仿真模型的无缝迁移与应用。

silver的专栏 1184

Oracle 中的 unique index 和 non unique index的区别

今天做Schema评审的时候发现一个很奇怪的现象,也许是用工具生成的SQL语句,清一色的如下: CREATE TABLE table_name ( id NUMBER NOT NULL, ...... ...... ) ; CREATE INDEX table_name_PK ON table_name(ID) ; ALTER T...

killkill 6226

DICOM标准:DICOM医学影像中的覆盖层(Overlay)概念详解

DICOM标准:深入详解DICOM医学影像中的覆盖层(Overlay)

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 1562

深入理解Oracle索引(2):INDEX UNIQUE SCAN,INDEX FULL SCAN和INDEX FAST FULL SCAN

㈠ INDEX UNIQUE SCAN              如果表上有唯一索引, 搜索索引列时会用上INDEX UNIQUE SCAN              原来Index Unique Scan和Index Range Scan在B Tree上的搜索路径是一样的       只是Index Unique Scan在找到应该含有要找的Index Key的block后便停止了搜索,因为该键

记录创业路上的一些想法 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

深入理解Oracle索引(1):INDEX SKIP SCAN 和 INDEX RANGE SCAN

㈠ Index SKIP SCAN              当表有一个复合索引,而在查询中有除了索引中第一列的其他列作为条件,并且优化器模式为CBO,这时候查询计划就有可能使用到SS       Skip scan会探测出索引前导列的唯一值个数,每个唯一值都会作为常规扫描的入口,在此基础上做一次查找,最后合并这些查询       例如:表employees (sex, employee_id,

记录创业路上的一些想法 3万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ORACLE实现MySQL中substring_index函数功能

目录MySQL中substring_index函数ORACLE涉及函数实现函数源码 MySQL中substring_index函数 substring_index(string, delimiter, number) string:原始字符串。 delimiter:查找的分隔符。 number:搜索分隔符次数。若为正数,则从左侧开始查找,若为负数,则从右侧开始查找。 ORACLE涉及函数 instr( string, substring [, start_position [, th_appearanc

weixin_44158741的博客 5470

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

oracle加索引 oracle,Oracle之索引(Index)实例讲解 - 基础

Oracle索引(Index)是关系数据库中用于存放表中每一条记录位置的一种对象,主要目的是加快数据的读取速度和数据的完整性检查。索引的建立是一项技术性要求非常高的工作。一般在数据库设计阶段就要考虑到如何设计和创建索引。1. 创建索引创建索引的语法:CREATE [UNIQUE] INDEX [schema.] indexON [schema.] table (column [ASC | DESC...

weixin_36362326的博客 2400

oracle中alter index,oracle alter index rebuild online和alter index rebuild的區別

本文用10046事件來解析alter index rebuild與alter index rebuild online的區別alter index rebuild online實質上是掃描表而不是掃描現有的索引塊來實現索引的重建alter index rebuild 只掃描現有的索引塊來實現索引的重建。我們可以用10046事件來發現這個現象。一 先看alter index rebuild:SQL&...

weixin_30411455的博客 998

Oracle索引2--index_stats视图

Oracle索引2--index_stats视图 INDEX_STATS 存储的是最近一次 ANALYZE INDEX ... VALIDATE STRUCTURE 语句的结果,换句话说就是这个视图最多只有一条数据,更确切的将应该是当前会话。 记录了Oracle评估一个索引的信息。 如:create index t11_idx on t11(owner,object_ty

chuan_day的专栏 2632

oracle index range scan,深入理解Oracle索引(1):INDEX SKIP SCAN 和 INDEX RANGE SCAN | 學步園...

㈠ Index SKIP SCAN當表有一個複合索引,而在查詢中有除了索引中第一列的其他列作為條件,並且優化器模式為CBO,這時候查詢計劃就有可能使用到SSSkip scan會探測出索引前導列的唯一值個數,每個唯一值都會作為常規掃描的入口,在此基礎上做一次查找,最後合併這些查詢例如:表employees (sex, employee_id, address) ,有一個組合索引(sex, emplo...

weixin_34961316的博客 897

oracle invisible index 的探索

os: centos 7.4 db: oracle 11.2.0.4 oracle 从 11g 开始提供 invisible index 索引,这对线上系统添加索引引起的性能异常提供了可控的方法。 准备表 -- drop table tmp_t0 purge; create table tmp_t0 as select * from dba_objects where 1=1 ; inser...

一名数据库爱好者的专栏 849

oracle中rebuild,ORACLE中index的rebuild(转)

Oracle里大量删除记录后,表和索引里占用的数据块空间并没有释放。table move可以释放已删除记录表占用的数据块空间,整理碎片。如果将表格用move方式整理碎片后,索引将失效,这时需要将索引重建。重建索引可以释放已删除记录索引占用的数据块空间。重建索引不仅能增加索引表空间空闲空间大小,还能够提高查询性能。Sql代码--tablemovealtertabletblmove;--r...

weixin_31066503的博客 3479

oracle的index与unique约束

一. 官网对Unique Constraints说明 http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/datainte.htm#CNCPT1642          uniquekey constraint requires that every value in a column or set of column...

weixin_41492331的博客 2113

oracle hint_no_index

oracle hint系列9no_index1,如果指定了表中一个索引,表中其它索引仍可选用2,如果指定了表中所有的索引,不会使用表中所有的索引3,如果未指定索引,不会使用表中所有的索引,即会走此表的全表扫描...

1471

oracle判断index是否存在,判断oracle index 何时需要重建

oracle 索引何时需要重建1.analyze index PUB_USER_FUNC_RESOURCE_INDEX3 validate structure;2. 查询索引碎片:select name,del_lf_rows,lf_rows,round((del_lf_rows/(lf_rows+0.0000000001))*100) frag_pctfrom index_stats一般如果该索...

weixin_35123329的博客 893

oracle中 create index,关于create index 及 create index ... online .

目前正准备研究这个题目.createindexOracle在使用create index来建立索引的时候在被索引的表中放置一个锁来防止用户改变表中的任何数据,如果一个table有5000万笔数据行,建立INDEX 需要大概30分钟,那么如果在生产系统运行的情况下建立这个index, 会出现什么情况,数据又是如何写入DB 以及如何被Lock机制协调处理的呢(生产系统停止运行,table没有数...

weixin_35689019的博客 1902
上一篇: Oracle的Index-3(转)
下一篇: ORACLE8的分区管理(转)
congwan5321
博客等级 码龄11年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值