oracle怎么禁用索引 oracle无效的列索引-成都快上网建站

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://kswjz.com/article/hijhph.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流