Oracle(12)Managing Indexes

news2024/11/23 18:37:41

目录

目标:

一、基础知识

1、Classification ofindexes 索引的分类

2、B-Tree vs Bitmap 

3、Creating Indexes: Guidelines 创建索引:准则

4、Offline Index Rebuild 脱机索引重建

5、RebuildingIndexes 重建索引

6、Online Index Rebuild 在线索引重建

7、Index Coalescing 索引合并

8、Getting Index Information 获取索引信息

二、基础操作

1、创建普通索引

 2、Creating B-Tree Indexes 创建B树索引

3、创建Bit map索引

4、Storage Params for indexes 修改索引的存储参数

5、Alloc & Dealloc Index Space 分配和取消分配索引空间

6、Rebuilding Indexes 重建索引

7、Rebuilding indexes Online 在线重建索引

8、Coalescing Indexes 合并索引(解决碎片化问题)

9、Checking Index Validity 检查索引有效性

10、Dropping Indexes 删除索引

11、Identifying Unused indexes 识别未使用的索引


Managing Indexes 管理索引

目标:

  • 列出不同类型的索引及其用法
  • 创建各种类型的索引
  • 重组索引
  • 维护索引
  • 监视索引的使用情况
  • 获取索引信息

一、基础知识

1、Classification ofindexes 索引的分类

  • Logical 逻辑分类:
    • Single column or concatenated 单列或级联
    • Unique or nonunique 唯一或非唯一
    • Function-based 基于功能的
    • Domain 域名
  • Physical 物理分类:
    •  Partitioned or nonpartitioned  分区或非分区
    • B-tree: Normal or reverse key B树:正常键或反向键
      • 每一个绿色结点都是一个Block,真正的数据是放在Leaf结点上,而Root和Branch只是为了找到Leaf结点
    • Bitmap :位图

2、B-Tree vs Bitmap 

  • B树(大部分索引使用的都得B树索引)
    • 适用于高基数色谱柱
    • 更新的按键相对便宜
    • 使用OR谓词的查询效率低下
    • 对OLTP有用

  • 位图
    • 适用于低基数列
    • 对关键列的更新非常昂贵
    • 对于使用OR谓词的查询是有效的
    • 对数据仓库很有用

3、Creating Indexes: Guidelines 创建索引:准则

  • 平衡查询和DML需求
  • 放置在单独的表空间中
  • 使用统一的扩展大小:五个块的倍数或表空间的最小扩展大小
  • 对于大型索引,请考虑NOLOGING
  • INITRANS通常在索引上的块比在相应的表上更高

4、Offline Index Rebuild 脱机索引重建

  • 1.Lock the table 创建锁表
  • 2.Create a new, temporary index by reading againstthe contents of the existing index. 通过读取现有索引的内容来创建新的临时索引。
  • 3.Drops the original index.删除原始索引。
  • 4. Renames the temporary index to make it seem tobe the original index.重命名临时索引,使其看起来像是原始索引。
  • 5.Remove the table lock..移除表锁。

5、RebuildingIndexes 重建索引

在以下情况下重建索引:

  • 必须将现有索引移动到不同的表空间。如果索引与表在同一个表空间中,或者需要跨磁盘重分发对象,则可能需要这样做。
  • 一个索引包含许多已删除的条目。这是滑动索引的典型问题,例如对订单表的订单号的索引,其中已完成的订单被删除,编号更高的新订单被添加到表中。如果有几个旧订单未完成,则可能有几个索引叶块,除了几个已删除的条目外,其余都是索引叶块。
  • 必须将现有的普通索引转换为反向键索引。从早期版本的甲骨文服务器迁移应用程序时可能会出现这种情况。
  • 使用ALTERTABLE将索引的表移到了另一个表空间..移动表空间命令。

6、Online Index Rebuild 在线索引重建

  • 1.创建表所。
  • 2.创建一个新的临时空索引和一个IOT来存储正在进行的DML。
  • 3.松开表锁。
  • 4.通过读取现有索引的内容填充临时索引。
  • 5将lOT的内容与新索引合并
  • 6.锁好表锁。
  • 7.最后从IOT合并并删除原始索引。
  • 8重命名临时索引,使其看起来像是原始索引。
  • 9.移除表锁。

7、Index Coalescing 索引合并

  • 沿着索引的底部扫描。
  • 如果相邻的节点可以组合成一个节点,那么就这样做
  • 合并索引比索引重建效率更快

8、Getting Index Information 获取索引信息

可以通过查询以下视图来获取有关索引的信息:

  • DBA_INDEXES:DBA索引:提供关于索引的信息
  • DBA_IND_COLUMNS:数据库管理系统IND列:提供有关索引的列的信息
  • V$OBJECT_USAGE:对象用法:提供有关索引使用的信息

二、基础操作

1、创建普通索引

格式:CREATE INDEX 索引名字 ON 添加索引的表字段

样例:

CREATE INDEX t_idX1 ON t(id);

创建一个索引,名字为t_idX1在t表的id字段上

选择是否创建索引需要根据具体情况而论,如果你需要经常查询且数据量比较大的时候创建索引会大大增加查询的速度,但是对于经常插入、修改等操作的数据不适合创建索引,因为索引会使得这写操作速度降低

 2、Creating B-Tree Indexes 创建B树索引

CREATE INDEX hr.employees_last_name_idx
ON hr.employees (last_name)
PCTFREE 30 -- 如果块的剩余空间小于百分之30就无法插入
STORAGE (INITIAL 200K NEXT 200K
PCTINCREASE O MAXEXTENTS 50)
TABLESPACE indx;

简单的创建B树索引的话只需要写以上代码前两行即可(后边参数默认),高级的话需要全写进行修改参数。

3、创建Bit map索引

格式:CREATE BITMAP INDEX 索引名 ON 添加索引的表字段;

CREATE BITMAP INDEX my_bit_idx ON t(sex);

4、Storage Params for indexes 修改索引的存储参数

ALTER INDEX employees_last_name idx
STORAGE (NEXT 400K
MAXEXTENTS 100);

5、Alloc & Dealloc Index Space 分配和取消分配索引空间

分配

ALTER INDEX orders_region_id_idx
ALLOCATE EXTENT (SIZE 200K
DATAFILE '/DISK6/indx01.dbf');

取消分配

ALTER INDEX orders_id_idx
DEALLOCATE UNUSED:

6、Rebuilding Indexes 重建索引

  • 使用ALTERINDEX命令可以:
    • 将索引移动到不同的表空间
    • 通过删除已删除的条目来提高空间利用率
ALTER INDEX orders_region_id_idx REBUILD
TABLESPACE indx02;

7、Rebuilding indexes Online 在线重建索引

  • Indexes can be rebuilt with minimal table locking 可以用最少的表锁定重新生成索引
    • ALTER INDEX orders_id_idx REBUILD ONLINE;
  • Some restrictions still apply 一些限制仍然适用

8、Coalescing Indexes 合并索引(解决碎片化问题)

ALTER INDEX orders_id_idx COALESCE;

9、Checking Index Validity 检查索引有效性

ANALYZE INDEX orders_region_id_idx
VALIDATE STRUCTURE:

10、Dropping Indexes 删除索引

  • 在大容量加载之前删除并重新创建索引
  • 删除不经常需要的索引,并在必要时生成索引
  • 删除并重新创建无效索引
DROP INDEX hr.departments_name_idx;

11、Identifying Unused indexes 识别未使用的索引

  • To start monitoring the usage of an index:要开始监视索引的使用情况
  • ALTER INDEX hr.dept_id_idx
    MONITORING USAGE
  • To stop monitoring the usage of an index:若要停止监视索引的使用情况:
  • ALTER INDEX hr.dept_id_idx
    NOMONITORING USAGE

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

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

相关文章

记一次某学院的未授权渗透过程

文章现写的,部分内容有些着急。 0x01 测试过程 开局登录框,没有测试SQL注入与XSS(菜鸟,测也测不出来。) 有system用户,尝试弱口令,无果! 直接namp来一下子端口探测吧 发现有3306与8888 3306 mysql测试…

《Generic Dynamic Graph Convolutional Network for traffic flow forecasting》阅读笔记

论文标题 《Generic Dynamic Graph Convolutional Network for traffic flow forecasting》 干什么活:交通流预测(traffic flow forecasting )方法:动态图卷积网络(Dynamic Graph Convolutional Network)…

【沧元图】梅元知命运逆转,但遗憾下线,孟川新形态揭晓

Hello,小伙伴们,我是小郑继续为大家深度解析国漫资讯。 深度爆料,《沧元图》是近年来备受期待的动画作品之一,其独特的画风和精彩的剧情吸引了众多观众的关注。这部动画的播出计划备受瞩目,据主创团队透露,本季共有26…

关于GPT的一些使用场景

与传统的机器翻译或语音识别技术不同,GPT强调的是生成新文本的能力,这使得它在创作、摘要、问答等场景下具有独特的优势。下面是我日常生活中用到GPT的一些场景: 日常闲聊 在日常闲聊中(尤其是和运营xjj聊天的时候)&a…

伊朗网络间谍组织针对中东金融和政府部门

导语 近日,以色列网络安全公司Check Point与Sygnia发现了一起针对中东金融、政府、军事和电信部门的网络间谍活动。这一活动由伊朗国家情报和安全部门(MOIS)支持的威胁行为者发起,被称为"Scarred Manticore"。该组织被认…

【EI会议征稿】第四届机械、电子电气与自动化控制国际学术会议(METMS 2024)

第四届机械、电子电气与自动化控制国际学术会议(METMS 2024) 2024 4th International Conference on Mechanical, Electronics and Electrical and Automation Control 2024年第四届机械、电子电气与自动化控制国际学术会议(METMS 2024&am…

每日一练 | 网络工程师软考真题Day47

阅读以下关于Linux文件系统和Samba效劳的说明,答复以下【问题1】至【问题3】。 【说明】 Linux系统采用了树型多级目录来管理文件,树型结构的最上层是根目录,其他的所有目录都是从根目录生成的。通过Samba可以实现基于Linux操作系统的效劳器和…

C语言之for的执行顺序

1.for具有内部可以存放3个条件&#xff0c;比如for(int i 0&#xff1b;i < n&#xff1b;i )。for中的条件可以不写&#xff0c;但是符号“&#xff1b;”一定要存在。for(;;)的作用和while(1)是类似的&#xff0c;都是一种死循环。 对于for(int i 0;i < n;i)&#x…

vite安装Tailwind CSS

安装 - Tailwind CSS 中文网 (nodejs.cn) 这是官网&#xff0c;平常我练习一般会用vite脚手架 我们选择这个vite模块 可选择React和Vue版本的&#xff0c;这里选择react的按照操作&#xff0c;没问题的话就要出问题了 1、在npm run dev的时候我是出现了这么个问题&#xff0c…

ATFX汇市:美联储11月利率决议再暂停加息,紧缩货币政策或已接近尾声

ATFX汇市&#xff1a;11月美联储利率决议结果在今日2:00公布&#xff0c;其中提到&#xff1a;美联储寻求以2%的速度实现最大的就业和通胀率&#xff0c;为了达成这些目标&#xff0c;美联储决定将联邦基金利率的目标区间维持在5.25%~5.5%&#xff1b;委员会将会考虑货币政策的…

本地kafka客户端远程密码访问kafka服务端

1.确保kafka服务端已经配置SASL/PLANTEXT ACL 2.确保kafka客户端与kafka服务端网络通 3.在kafka客户端在路径为…/kafka/config/下创建client.properties文件 修改producer.properties、consumer.properties security.protocolSASL_PLAINTEXT sasl.mechanismPLAIN sasl.jaas…

Go基础——指针、结构体

1、指针 Go语言指针与C差不多&#xff0c;取地址符是 &&#xff0c;放到一个变量前使用就会返回相应变量的内存地址。 变量是一种使用方便的占位符&#xff0c;用于引用计算机内存地址。一个指针变量可以指向任何一个值的内存地址&#xff0c;它所指向的值的内存地址在 32 …

第24期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练 Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大型语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以…

一副耳机两种体验,好看好听降噪强,FIIL Key Pro上手

户外使用蓝牙耳机时&#xff0c;降噪功能真的是必不可少&#xff0c;特别是通勤高峰期&#xff0c;能有效隔绝周围的嘈杂声&#xff0c;对于上班族来说&#xff0c;真的会舒服很多。市场上有很多降噪耳机可供选择&#xff0c;相比于价格上千的发烧级装备&#xff0c;我更倾向于…

聊点技术|秒级根因定位可能吗?博睿数据将不可能变为可能

10月20日&#xff0c;数智融&#xff0c;ONE向新——博睿数据2023秋季产品发布会圆满落幕&#xff0c;全新一代一体化智能可观测平台Bonree ONE 2023秋季正式版焕新发布&#xff0c;重点升级了数据采集、全局拓扑、数据分析、会话回放等多个功能模块&#xff0c;为组织提供了更…

人工智能基础_机器学习017_SGD随机梯度下降求解多元一次方程_以及求解多元一次方程---人工智能工作笔记0057

然后我们再来看一下X.shape 这个用来显示,一个矩阵的形状,其实就是几行几列对吧 然后,比如上面这个是100行 ,9列,其实对应我们的方程上,就是 8元一次方程, w1到w8加上w0 一共9列,然后有100个样本,也就是100行数据对吧 然后我们来看一下我们用SGD随机梯度下降来实现一个一元一…

VBA技术资料MF78:产生随机字符串密码

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

【Jena系列】Jena基本介绍

序言 做一件事并不难&#xff0c;难的是在于坚持。坚持一下也不难&#xff0c;难的是坚持到底。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记一级论点蓝色&#xff1a;用来标记二级论点 希望这篇文章能让你不…

(3)小程序如何绑定事件

<view bindtap"led">日志</view> 一&#xff1a;用什么绑定事件&#xff1f; 用这个bindtap 在框架中绑定事件 二&#xff1a;在ts文件中如何去操作 led:function(){console.log(this.data.message)this.setData({message: "现在"})}led&am…

YOLO算法改进4【中阶改进篇】:添加DeformableConvolution v2可变形卷积模块

论文地址&#xff1a; https://arxiv.org/abs/1811.11168 源码地址&#xff1a;https://github.com/msracver/Deformable-ConvNets 传统的卷积操作是将特征图分成一个个与卷积核大小相同的部分&#xff0c;然后进行卷积操作&#xff0c;每部分在特征图上的位置都是固定的。这样…