oracle怎么禁用索引 oracle无效的列索引

oracle 10g,可以禁用索引吗,像禁用约束一样

10g里面只有让索引UNUSABLE,语句:

成都创新互联是一家专业提供固原企业网站建设,专注与成都网站建设、网站设计、H5开发、小程序制作等业务。10年已为固原众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

ALTER INDEX idx_name UNUSABLE;

不过要再次使用的话需要rebuild,与删除了索引差不多。

11g里面可以让索引INVISIBLE,就是对优化器不可见,语句:

alter index idx_name INVISIBLE ;

再次使用也不用重建,设置为VISIBLE就行了,可惜你的版本太低。

如果是对单一sql的话,使用hint就可以,所有版本可用。

oracle 10g 是否能禁用索引?如能禁用,再如何启用已禁用的索引呢?

索引应该是不能禁用的。

可以考虑将语法存储下来,

然后删掉索引。

如果需要恢复的时候,再创建就可以了。

如何让ORACLE索引不起作用

你是想让某一个索引不起作用,还是全部索引不起作用,如果是全部索引,也就是说你要走全表扫描,那么用hint就行,如果让某一个索引不起作用,用另外一个索引,那么也可以用hint指定。

比如:

不走任何索引(全表扫描):

SELECT /*+ FULL(A) */ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='SCOTT'

不走某一个索引:

将上文的/*+ FULL(A) */换为/*+ NO_INDEX(TABLE INDEX1, index2) */

走某一个索引

将上文的/*+ FULL(A) */换为/*+ INDEX(TABLE INDEX1, index2) */

hint还有很多用法,你可以慢慢查。

如果索引是在没用那么就drop掉。让他永远无效,我觉得还不如drop掉呢。省的留下来烦心。

如何让ORACLE索引不起作用(不可见)

OK,从上面我们可以看到索引很正常。那现在假设我们不再需要这个索引了,因此想删除它,但又不知道会不会有本文开头所说的风险。如果可以删除前先把索引不可见,确认没问题后再删除,这样就没问题了,为此,Oracle11g推出新的功能,设置索引是否可见,示例如下:


网站栏目:oracle怎么禁用索引 oracle无效的列索引
文章链接:http://bzwzjz.com/article/hijhph.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 专业网站建设 高端网站建设 重庆网站制作 阿坝网站设计 app网站建设 网站建设改版 成都网站制作 营销网站建设 网站制作报价 成都定制网站建设 重庆网站建设 成都网站建设 手机网站建设套餐 成都网站制作 成都定制网站建设 四川成都网站建设 自适应网站设计 成都网站建设流程 成都网站设计公司 定制网站制作 成都网站建设 营销型网站建设