Oracle(12)Managing Indexes
目录
目标:
一、基础知识
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
相关文章:
Oracle(12)Managing Indexes
目录 目标: 一、基础知识 1、Classification ofindexes 索引的分类 2、B-Tree vs Bitmap 3、Creating Indexes: Guidelines 创建索引:准则 4、Offline Index Rebuild 脱机索引重建 5、RebuildingIndexes 重建索引 6、Online Index Rebuild 在线索引重建 7…...
DirectX3D 虚拟现实项目 三维物体的光照及着色(五个不同着色效果的旋转茶壶)
文章目录 任务要求原始代码CPP文件代码着色器文件代码 效果展示 任务要求 本篇文章是中国农业大学虚拟现实课程的一次作业内容,需要对五个茶壶模型使用不同的光照进行着色和渲染,然后旋转展示。 本人的代码也是在其他人的代码的基础上修改来的…...
【Verilog 教程】7.3 Verilog 串行 FIR 滤波器设计
串行 FIR 滤波器设计 设计说明 设计参数不变,与并行 FIR 滤波器参数一致。即,输入频率为 7.5 MHz 和 250 KHz 的正弦波混合信号,经过 FIR 滤波器后,高频信号 7.5MHz 被滤除,只保留 250KMHz 的信号。 输入频率&#x…...
用golang实现一个基于interface的多态示例,展示其使用场景和优劣性。
以下是一个简单的基于interface的多态示例,该示例展示了如何通过使用interface来实现多个不同类型的结构体的共同行为。具体示例如下: package mainimport "fmt"type Animal interface {Speak() string }type Dog struct {Name string }func …...
ArcGIS for Android 禁止地图旋转
ArcGIS for Android 禁止地图旋转 话不多说,直接上代码!!! public class LoadMap extends AppCompatActivity {// 地图private MapView mapView;private ArcGISMap map;Overrideprotected void onCreate(Bundle savedInstanceSta…...
freertos静态创建任务
在开始前先有个小插曲,我的keil的自动补全代码功能使用不了,经过查找是因为之前装51把有的文件覆盖了,照这篇博客就可以解决。 然后之前那份代码我们是动态创建任务,先来说一下动态创建任务和静态创建任务的区别: Fre…...
VBA根据Excel内容快速创建PPT
示例需求:根据Excel中选中的单元格内容(3列)如下图所示,在已打卡的PowerPoint文件中创建页面。 新增PPT Slide页面使用第二个模板页面,其中包含两个文本占位符,和一个图片占位符。将Excel选中区域中前两列写…...
服务器操作系统有哪些
服务器操作系统有哪些 电脑想要运行就离不开操作系统,而服务器想要正常运行同样也离不开操作系统,那你知道服务器系统有哪些?服务器系统与电脑系统有什么区别?这些问题就由壹基比小鑫在下文中来告诉大家。 服务器系统有哪些&…...
泄漏检测与修复(LDAR)过程管控平台(销售出租)VOCs便携式总烃分析仪(销售出租)
LDAR是Leak Detection and Repair(泄漏检测与修复)的缩写,也是国际上较先进的化工废气检测技术。LDAR主要通过检测化工企业原料输送管道、泵、阀门、法兰等易产生易产生挥发性有机物(简称VOCs)泄漏的部位,并…...
VueX 模块化和namespace
当我们的项目很大的时候,VueX中的代码会越来越多,会有处理数据的,处理人员列表的,处理订单的... 如果我们将这些东西都写在一个state、actions和mutations中的话,就非常不方便后期的维护。 所以我们引入了VueX的模块…...
7-4 修理牧场 分数 15
#include<iostream> #include<queue> using namespace std; #define maxn 10005int main() {int n 0, data 0;cin >> n;//建小堆: //上调建堆中用greater: 父大子小 父子交换 小的上去 大的下去 priority_queue<int, vector<int>, greater<int…...
自定义element-ui plus 函数式调用,在API,js中直接使用全局组件
npm方式: npm install -D unplugin-vue-components unplugin-auto-import yarn 方式 : yarn add unplugin-vue-components; yarn add unplugin-auto-import; 使用官方的这个: vite.config.js中配置 plugins: [vue(),AutoImport({resolvers: [ElementPlusResolve…...
[LeetCode]-876.链表的中间结点-206.反转链表-21.合并两个有序链表-203.移除链表元素
目录 876.链表的中间结点 题目 思路 代码 206.反转链表 题目 思路 代码 21.合并两个有序链表 题目 思路 代码 203.移除链表元素 题目 思路 代码 876.链表的中间结点 876. 链表的中间结点 - 力扣(LeetCode)https://leetcode.cn/problems/mi…...
通过git多人协调开发
多人协调开发过程中的问题解决。 1.新建远程的仓库分支; 2.拉取线上代码,并在VScode中打开; 3 拉完之后,打开VScode之后的左下角显示的就是当前分支的名称,点击之后即可随意切换; 4 创建本地分支࿰…...
CentOS 7 通过 yum 安装 MariaDB(Mysql)
这一版取消了修改配置的操作,改成每次创建数据库时手动指定字符集编码;这一版取消了修改密码的操作,保留 MariaDB 使用无密码的情况,即密码是 ""。 安装步骤: 以下操作都以 root 用户进行操作 以下操作都以 …...
【Solidity】Remix在线环境及钱包申请
好久没有学习区块链方面的知识了,目前通过自学大致掌握了Fabric联盟链的搭建,链码编写、部署,api调用,可以独立开发出一些基于fabric的应用,感觉开发出去中心化的应用还是很有意思的,因为他与之前开发的ssm…...
ARFoundation系列讲解 - 92 涂鸦效果
--- 视频来源于网络,如有侵权必删 --- 案例中使用的软件版本 Unity2023.1.17.f1c1ARFoundtaion 5.1.0Apple ARKit XR Plugin 5.1.0 Google ARCore XR Plugin 5.1.0技术分析 我们可以实时检测用户手指触摸的屏幕位置,从触摸位置投射一条射线(Raycast),再射线命中的目标位置…...
立创eda专业版学习笔记(8)(运行模式)
以前没注意过这个问题,我有2台电脑,都能登录eda专业版,但是一台是全在线模式,另外一台是半离线模式,虽然是同一个账号,但是打开里面的工程会发现,两边的工程完全不同,因为一台的工程…...
349.两个数组的交集+350.两个数组的交集II(set/multiset)
目录 一、349.两个数组的交集 二、350.两个数组的交集II 一、349.两个数组的交集 349. 两个数组的交集 - 力扣(LeetCode) class Solution { public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {//…...
数据结构与算法之排序: 桶排序 (Javascript版)
排序 排序:把某个乱序的数组变成升序或降序的数组 (这里用数组来做举例) 桶排序 根据元素的取值范围,创建多个桶, 每个桶代表一个区间范围 创建桶的数量和范围需要尽可能保证元素能够被均匀分布 接下来将元素放进对应的桶中,分别对每个桶中…...
QMCDecode终极指南:三步解锁QQ音乐加密文件,让你的音乐自由播放
QMCDecode终极指南:三步解锁QQ音乐加密文件,让你的音乐自由播放 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目…...
如何让直播输入可视化:input-overlay终极指南
如何让直播输入可视化:input-overlay终极指南 【免费下载链接】input-overlay Show keyboard, gamepad and mouse input on stream 项目地址: https://gitcode.com/gh_mirrors/in/input-overlay 想象一下,当你在直播中展示行云流水的操作时&#…...
Nodejs后端服务接入Taotoken实现AI对话功能的具体步骤
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Node.js 后端服务接入 Taotoken 实现 AI 对话功能的具体步骤 1. 准备工作:获取 API 密钥与模型 ID 在开始编写代码之前…...
【更新 v 2.7.5 版本】桌面版 Open Claw 本地一键部署指南
✨ 核心亮点 零代码门槛|全程可视化|无需手动配环境|内置所有依赖|28 万 Tokens 额度 🔗 下载地址 https://xiake.yun/api/download/package/16?promoCodeIV8E496E2F7A 📝 前言 开源圈热门的「数字员…...
Windows 11终极优化指南:使用Win11Debloat免费提升系统性能 [特殊字符]
Windows 11终极优化指南:使用Win11Debloat免费提升系统性能 🚀 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes …...
Python盲水印终极指南:3个简单步骤保护你的数字版权
Python盲水印终极指南:3个简单步骤保护你的数字版权 【免费下载链接】BlindWatermark 使用盲水印保护创作者的知识产权using invisible watermark to protect creators intellectual property 项目地址: https://gitcode.com/gh_mirrors/bl/BlindWatermark 在…...
3分钟解决阅读APP书源问题:高质量书源一键导入指南
3分钟解决阅读APP书源问题:高质量书源一键导入指南 【免费下载链接】Yuedu 📚「阅读」自用书源分享 项目地址: https://gitcode.com/gh_mirrors/yu/Yuedu 还在为找不到稳定的小说书源而烦恼吗?是否经常遇到书源失效、加载缓慢的问题&a…...
技术驱动财税革新,用友小畅 AI 以大模型重构行业生态
人工智能技术的快速发展,正在深刻改变各个行业的面貌,财税行业也不例外。大模型技术的应用,让财务软件从传统的工具型产品向智能型产品转变,彻底重构了传统的财税工作流。作为行业龙头,用友集团率先将大模型技术应用于…...
Camunda流程版本管理避坑指南:从Version Tag查询到迁移验证,这些细节决定成败
Camunda流程版本管理实战精要:从精准查询到安全迁移的全链路策略 在企业级流程自动化领域,Camunda作为领先的工作流引擎,其版本管理机制直接影响着业务系统的稳定性和迭代效率。本文将深入剖析版本管理的核心痛点,提供一套覆盖全…...
Midjourney材质质感翻车实录(金属发灰/皮革失真/玻璃无折射):基于1372组AB测试的材质Token黄金配比公式
更多请点击: https://kaifayun.com 第一章:Midjourney材质表现方法论总纲 Midjourney 作为以语义驱动的图像生成模型,其对材质(Texture)的表达并非依赖显式参数控制,而是通过提示词(Prompt&…...

