oracle怎么判断索引是否失效
时间:2022-05-26 [网络编程]作者:fabuyuan 浏览:7 次
在oracle中,可以利用“select status from user_indexes where index_name='索引名称';”语句判断索引是否失效;若返回的结果是VALID,则表示索引没有失效,否则表示索引失效。
本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。
oracle怎么判断索引是否失效
语法如下:
select status from user_indexes where index_name='索引名称';
如果返回结果为VALID,则表示索引有效!
示例如图所示:
扩展知识:
索引失效解决方法
1. 选用适合的Oracle优化器
Oracle的优化器共有3种:
a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性)。
设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS 。你当然也在SQL句级或是会话(session)级对其进行覆盖。
为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性。
如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关。如果table已经被analyze过, 优化器模式将自动成为CBO , 反之,数据库将采用RULE形式的优化器。
(分析table
analyze table PROD_PARTS compute statistics; ANALYZE TABLE PROD_PARTS COMPUTE STATISTICS FOR ALL INDEXED COLUMNS; analyze table PROD_PARTS compute statistics for table for all indexes for all indexed columns;
)【有一次索引失效之后,请教DBA后,发现是数据统计的问题,具体的解决办法是执行以上语句】
在缺省情况下,Oracle采用CHOOSE优化器, 为了避免那些不必要的全表扫描(full table scan), 你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器。
2、重建索引
alter index 索引名 rebuild 【online】
3、强制索引
给该语句加上hint后,强制其使用'RECORD_ENTITYID' 这个索引
sql语句变成这样
引用
select /*+ index(record,record_entityid) */ * from RECORD where entityId='24' and entityType='blog';
/*+ index(record,record_entityid) */ 中,index表示强制使用index,record是表名,record_entityid是索引名。其执行计划跟测试数据库上一致,都是使用用 'RECORD_ENTITYID' 这个索引,逻辑读写同样为4。
后来经过测试,在不加hint的情况下,对该表和两个索引执行analyze 后,同样也能使用 'RECORD_ENTITYID' 这个索引。但是因为该表更新颇为频繁,不知道要多久就要再分析一次
推荐教程:《Oracle视频教程》
以上就是oracle怎么判断索引是否失效的详细内容,更多请关注站长家园其它相关文章!
本文标签: oracle
转载请注明来源:oracle怎么判断索引是否失效
本文永久链接地址:https://www.adminjie.com/post/12821.html
免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!
版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。
更多精彩内容
- VUE中V-IF条件判断改变元素的样式操作
- Discuz如何解决安装时报错run_sql_error
- 低版本VS项目在VS2019无法正常编译的问题
- PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
- Oracle数据库的实例/表空间/用户/表之间关系简单讲解
- RSA2是啥?PHP-RSA2签名验证怎么实现?
- app是什么应用程序的简称
- 华为dubal20是什么型号
- 小程序大小超限除了分包还能怎么做?如何避免和解决大小限制?
- 电脑显示信号线无连接是什么意思
- ana an00华为是什么型号
- html5中onclick是什么意思
- 超清视效是什么意思
- vivov1818a是什么手机型号
- html5的标题标记一共有几个等级

- 最新文章
-
-
linux文件夹的执行权限不够怎么办
在linux中,文件夹的执行权限不够可以利用chmod命令修改权限解决,该命令是空值用户的文件权限的命令,可以将文件调用权限分为文件所有者、用户组和其他用户三级...
-
新手入门:BT宝塔面板如何初始化(教程分享)
宝塔面板如何初始化?下面本篇文章就来给大家分享一个小白也能看懂的BT宝塔面板初始化入门教程,希望对大家有所帮助!在学习BT宝塔面板的使用过程中,小九发现有许多小...
-
linux中的mysql有10061错误怎么办
解决方法:1、root用户登录到mysql命令行,并利用“vi/etc/mysql/mysql.conf.d/mysqld.cnf”命令将“bind-addr...
-
归纳总结Excel超级表的应用
本篇文章给大家带来了关于excel的相关知识,其中主要整理了超级表应用的相关问题,包括了制作表格、汇总、动态范围等等内容,下面一起来看一下,希望对大家有帮助。手...
-
简单聊聊JavaScript中的事件监听事件的传播
本篇文章给大家带来了关于javascript的相关知识,其中主要整理了事件监听的相关问题,包括了什么是事件监听、设置事件监听的方法等等内容,下面一起来看一下,希...
-
- 热门文章
-
-
VUE中V-IF条件判断改变元素的样式操作
这篇文章主要介绍了VUE中V-IF条件判断改变元素的样式操作,具有很好的参考价值,希望对大家有所帮助。一起跟随想过来看看吧...
-
Discuz如何解决安装时报错run_sql_error
问题环境VMware虚拟机Centos7.3PHP7.0MySQL8.0NGINX1.14Discuz3.4问题还原本地环境为PHP5.6+MySQL5.6在安...
-
低版本VS项目在VS2019无法正常编译的问题
低版本VS项目在VS2019无法正常编译的问题这里指的编译并不准确,只是为了方便说明。后有(未安装),201?...
-
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
实现原理使用redis链表来做,因为pop操作是原子的,即使有很多用户同时到达,也是依次执行,推荐使用。实现步骤第一步,先将商品库存入队列/**.trigge...
-
Oracle数据库的实例/表空间/用户/表之间关系简单讲解
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。我们用这些高级权限账号...
-