读书笔记:Oracle 自动索引:让数据库自己管索引?

news/2025/9/26 14:51:55/文章来源:https://www.cnblogs.com/www-htz-pw/p/19113494

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

本文为个人学习《Expert Oracle Database Architecture Techniques and Solutions for High Performance and Productivity(第四版本》一书过程中的笔记与理解分享,仅用于学习与交流,部分内容参考原书观点并结合>实际经验进行整理。若涉及版权问题,请联系删除或沟通处理。也请大家支持购买原版书籍。

Oracle 自动索引:让数据库自己管索引?

从 Oracle 19c 开始,数据库引入了一个很酷的新功能:自动索引。简单来说,就是你可以让数据库自己决定什么时候该创建索引、什么时候该重建或删除索引,这一切都基于应用程序实际运行的负载情况。

自动索引是怎么工作的?

你可以把自动索引想象成一个智能的数据库索引管家,它的工作流程非常聪明:

  1. 发现候选:它像个侦探一样,不停分析数据库里运行的SQL语句,找出哪些列如果加了索引可能会让查询跑得更快。这些被它相中的索引就叫“候选索引”。
  2. 悄悄创建:找到目标后,它会先悄悄地创建索引(名字都以 SYS_AI 开头),并且把这些新索引设置为“不可见”模式。这意味着,虽然索引建好了,但优化器(决定SQL怎么执行的核心组件)暂时还不会用它,所以不会立刻影响到现有程序的运行。
  3. 实际测试:接下来,这个管家会偷偷地用这些不可见的索引来测试运行SQL,看看效果到底怎么样。如果发现性能确实提升了,它就把索引正式“亮出来”(变为可见);如果发现没啥用,它就把这个索引标记为“不可用”,之后会清理掉。
  4. 自动清理:它还会定期巡视,发现那些长期没人用的索引,也会自动把它们扔掉,节省空间。

⚠️ 重要提示
这个高级功能目前官方只支持在 Oracle Exadata 这种高端硬件上运行的企业版(Enterprise Edition)。如果你在普通机器上尝试启用它,会报错。虽然有个隐藏开关可以强行打开,但强烈不建议你自己这么做,因为这涉及到软件许可问题,可能需要额外付费。

DBA的工作被取代了吗?

并没有!启用自动索引后,DBA的角色从索引的“建筑工”变成了“监理”。

  • 你的主要工作是管理和配置这个功能,比如设置一些参数,告诉它哪些表或用户需要特别关照,哪些不需要。
  • 你需要定期查看它生成的报告,了解它做了些什么,效果如何,做到心中有数。

所以,DBA并没有失业,只是工作重点变了!

动手试一试

理论上,只需要简单执行一个命令就能开启这个功能(在PDB中):

EXEC dbms_auto_index.configure('AUTO_INDEX_MODE','IMPLEMENT');

之后,你像往常一样运行应用程序。自动索引的后台任务就会开始工作。比如,它可能会发现某个查询总是在查一个没有索引的大表,速度很慢。它就会:

  1. 自动为那个表创建了一个不可见的索引。
  2. 经过一段时间测试,确认有效后,将索引变为可见。
  3. 之后你再执行同样的查询,就会发现数据库已经飞快地用上这个新索引了。

你随时可以通过查询数据字典视图(如 DBA_INDEXES)或调用报告函数来查看它的工作成果。

总结一下

自动索引是一个强大的辅助工具,但它绝不是万灵药,也不能完全替代DBA和开发人员的思考。

  • 你比数据库更懂你的业务数据和程序逻辑。
  • 你仍然需要监控和评估它的工作,确保它的决策符合你的预期。

它的定位是增强你的索引管理策略,帮你减轻一些重复性的体力劳动,而不是彻底取代你。把它当作一个得力的AI助手,而不是一个全自动的替代品。

------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

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

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

相关文章

海安县建设局网站先备案还是先做网站

分类目录:《系统学习Python》总目录 文章《系统学习Python——装饰器:“私有“和“公有“属性案例-[实现私有属性]》中的代码有点复杂,并且你最好自己跟踪运行它,看看它是如何工作的。然而为了帮助你理解,这里给出一些…

1_2025.9.26_1

题目:[https://codeforces.com/problemset/problem/2140/E1] ac代码:[https://codeforces.com/contest/2140/submission/340570458] 思路:状压dp,因m<=2,n<=20,所以将状态压缩遍历,再根据题解给的式子写即…

故障处理:Oracle RAC集群CTSS时钟同步故障案例分析与解决

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。本案例来自一…

Linux系统提权-web/普通用户-docker逃逸提权shell交互

Linux系统提权-web/普通用户-docker逃逸&提权&shell交互 docker提权分几种情况 1、权限在docker里面逃逸 提权(宿主机) 2、权限不在docker里面借助docker应用去提权(用户归属是docker组 拉镜像 提权)参考链接h…

网站开发z亿玛酷1负责网页设计与制作策划书

目录 1.加载镜像并进入容器 2.安装依赖 3.在docker外部git-clone lcm 4.将get-clone的lcm复制到容器中 5.编译库 6.将可执行文件复制到容器中 7.进入可执行文件 8.编译可执行文件 9.再开一个终端运行程序 10.将以上容器打成镜像并导出 1.加载镜像并进入容器 sudo do…

PostgreSQL技术大讲堂 - 第106讲:分区表索引优化

PostgreSQL从入门到精通系列课程,100+节PG技术讲解,让你从小白一步步成长为独当一面的PG专业人员,点击这里查看章节内容,持续更新,欢迎加入。 第106讲:重讲分区表索引优化主要内容:1、全局索引与本地分区索引的…

AI智能体:从认知到实践

人工智能时代:时代的机遇和挑战。潮起AI Agent智能体到底是什么,为什么大家都在卷AI智能体1、什么是AI Agent智能体? 规划感知,决策,行动 ===》记忆 =》》大语言模型理解智能体,人工智能的本质是仿生技术,我们…

Kinect屏幕边缘检测不灵敏的解决方案

在做体感项目时,在边缘部分的抓取动作识别非常差于是我做出了优化,不采用原本的映射关系:假设原本人物站在中间,保持位置不动,右手臂向右伸直,终点为屏幕的极限位置此时我们并不将手臂伸直的位置映射到屏幕的极限…

网站建设话术关键词wordpress 仿豆瓣标注

1、目的 使公司的图纸得到有效的控制&#xff0c;确保生产所用的图纸为最新有效版本&#xff0c;避免因图纸管理不当造成的损失。 2、定义 本制度所述的图纸包括产品总装图、装配图、零件图、工装图纸、检具图纸、包装图纸、工艺流程 3、范围 客户提供的图纸&#xff0c;技…

国内做交互网站WordPress 如何去域名授权

对于关系型数据库而言&#xff0c;针对表的检索&#xff0c;一般来说&#xff0c;建立合适的索引就可以达到很好的检索效果。&#xff08;这里不包含表设计的合理与否&#xff09;比如像状态列这样可选择性非常低的值&#xff0c;该如何检索&#xff1f; 其实这个已经不是关系…

暴力拓客游戏小程序:助力商家高效引流与裂变的智能解决方案

在数字化营销时代,流量获取与用户裂变成为商家经营的核心需求。暴力拓客游戏小程序(以热门口红游戏为核心载体)应运而生,依托微信生态,通过 “游戏 + 裂变” 模式,为运营商和实体商户提供从流量获取、用户转化到…

vue3小坑之-为什么把ref定义的数组赋值给数组对象后取值为空数组?

天呢,居然两年没有上博客园看过了,呜呜呜,日渐废柴 这次总结一个码代码的时候遇到的问题,为什么把数据赋值给数组对象的某个字段,打印出来的是个空数组? 错误写法一:// 动态获取list值,前端可以增删改查 const …

第二类斯特林数

定义 第二类斯特林数记作 \(\begin{Bmatrix}n\\ k\end{Bmatrix}\) 或者 \(S(n,k)\),其意义是将 \(n\) 个互不相同的元素划分为 \(k\) 个相同的非空集合的方案数。 朴素求解 \[\begin{Bmatrix}n\\ k\end{Bmatrix} =\be…

扫码签到赢大奖小程序:助力多场景获客的智能营销工具

在数字化营销浪潮下,线下场景的流量激活与用户留存成为商家核心需求。由厦门掌界网络开发的 “扫码签到赢大奖” 小程序,依托微信生态,以 “签到 + 抽奖” 为核心模式,为门店、景区、展会等场景提供低成本、高效率…

seo基础入门汉中网站seo

公司里绝大多数主机已经禁止外网访问&#xff0c;仅保留一台主机设置socks作为代理服务器。如下为对socks这一概念的学习整理 什么是socks 是一种OSI模型下会话层的协议&#xff0c;位于表示层与传输层之间&#xff0c;作用是&#xff1a; exchanges network packets between…

贵阳建站推广公司蜘蛛搜索引擎

字符编码的问题看似很小&#xff0c;经常被技术人员忽视&#xff0c;但是很容易导致一些莫名其妙的问题。这里总结了一下字符编码的一些普及性的知识&#xff0c;希望对大家有所帮助。 还是得从ASCII码说起 说到字符编码&#xff0c;不得不说ASCII码的简史。计算机一开始发明…

庐江魅力网做网站号码成都网站开发

物理建模是四旋翼无人机控制系统建模的基础&#xff0c;主要涉及到无人机的物理特性和运动学特性。物理建模的目的是将无人机的运动与输入信号&#xff08;如控制电压&#xff09;之间的关系进行数学描述。 四旋翼无人直升机是具有四个输入力和六个坐标输出的欠驱动动力学旋翼…

做网站时,404网页如何指向wordpress weather

Java中的适配器模式&#xff08;Adapter Pattern&#xff09;是一种设计模式&#xff0c;它允许我们将一种类的接口转换成另一种类的接口&#xff0c;以便于使用。适配器模式通常用于在不兼容的接口之间提供一种过渡性的接口&#xff0c;从而使代码更加灵活和可维护。 在Java中…

包装盒在线设计网站二级子域名ip地址查询

http和https区别 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;和HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是用于在网络上传输数据的两种协议。它们之间的主要区别在于安全性和数据传输方式&#xff1a; 安全性&#xff1a;HTTP是明文传…

docker 镜像/容器

根据镜像启动容器,并进入容器: docker run -it --privileged --entrypoint bash 镜像名特性Docker 镜像Docker 容器本质 只读的模板或快照。包含创建容器所需的文件和元数据。 镜像的运行实例。是一个可写的、隔离的…