ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle 19c AutoIndex Tips

2020-02-07 11:02:14  阅读:481  来源: 互联网

标签:INDEX AutoIndex AI AUTO LIN SYS Oracle Tips KKB


Oracle 19c AutoIndex Tips

Env:

Exa/EE 19c

Prepare

Oracle 19c Automatic Indexing

auto index只有云产品和ExadataEE才能使用,测试各种命令可以使用模拟exadata环境去实践这些相关命令

alter system set "_exadata_feature_on"=true scope=spfile;
shutdown immediate;
startup;

auto_index的相关parameter

[oracle@db1 ~](KKB)$ ora params auto_index

NAME					      VALUE		   DESCRIPTION
--------------------------------------------- -------------------- ----------------------------------------------------------------------
_optimizer_auto_index_allow		      AUTO		   Controls Auto Index
_optimizer_use_auto_indexes		      AUTO		   Use Auto Index

[oracle@db1 ~](KKB)$ 

SYS@KKB> 
col parameter_name for a40
col PARAMETER_VALUE for 999999
col LAST_UPDATED for a30
col UPDATED_BY for a10
col PARAMETER_DATA for a30
set lines 200 pagesize 1000
SYS@KKB> select * from SMB$CONFIG;

PARAMETER_NAME				 PARAMETER_VALUE LAST_UPDATED			UPDATED_BY PARAMETER_DATA
---------------------------------------- --------------- ------------------------------ ---------- ------------------------------
SPACE_BUDGET_PERCENT				      10
PLAN_RETENTION_WEEKS				      53
SPM_TRACING					       0
AUTO_CAPTURE_PARSING_SCHEMA_NAME		       0					   <filters></filters>
AUTO_CAPTURE_MODULE				       0					   <filters></filters>
AUTO_CAPTURE_ACTION				       0					   <filters></filters>
AUTO_CAPTURE_SQL_TEXT				       0					   <filters></filters>
AUTO_INDEX_SCHEMA				       0					   <filters></filters>
AUTO_INDEX_DEFAULT_TABLESPACE			       0
AUTO_INDEX_SPACE_BUDGET 			      50
AUTO_INDEX_REPORT_RETENTION			      31
AUTO_INDEX_RETENTION_FOR_AUTO			       0					   373
AUTO_INDEX_RETENTION_FOR_MANUAL 		       0
AUTO_INDEX_MODE 				       0 19-06-18 14:22:40.000000	SYS	   OFF
_AUTO_INDEX_TRACE				       0
_AUTO_INDEX_TASK_INTERVAL			     900
_AUTO_INDEX_TASK_MAX_RUNTIME			    3600
_AUTO_INDEX_IMPROVEMENT_THRESHOLD		      20
_AUTO_INDEX_REGRESSION_THRESHOLD		      10
_AUTO_INDEX_ABSDIFF_THRESHOLD			     100
_AUTO_INDEX_STS_CAPTURE_TASK			       0 19-06-18 13:29:46.000000	LIN	   ON
_AUTO_INDEX_CONTROL				       0
_AUTO_INDEX_DERIVE_STATISTICS			       0					   ON
_AUTO_INDEX_CONCURRENCY 			       1
_AUTO_INDEX_SPA_CONCURRENCY			       1
_AUTO_INDEX_REBUILD_TIME_LIMIT			      30
_AUTO_INDEX_REBUILD_COUNT_LIMIT 		       5
_AUTO_INDEX_REVERIFY_TIME			      30
AUTO_INDEX_COMPRESSION				       0					   OFF
AUTO_SPM_EVOLVE_TASK				       0					   OFF
AUTO_SPM_EVOLVE_TASK_INTERVAL			    3600
AUTO_SPM_EVOLVE_TASK_MAX_RUNTIME		    1800

32 rows selected.

SYS@KKB> 
可以看到 _AUTO_INDEX_TASK_INTERVAL = 900 是15分钟捕获auto index

auto index的缺省设置: 根据名称即可大概了解参数的功能,这些参数都需要通过DBMS_AUTO_INDEX去修改

SYS@KKB> select * from dba_auto_index_config;

PARAMETER_NAME				 PARAMETER_VALUE      LAST_MODIFIED	   MODIFIED_BY
---------------------------------------- -------------------- -------------------- --------------------
AUTO_INDEX_COMPRESSION			 OFF
AUTO_INDEX_DEFAULT_TABLESPACE
AUTO_INDEX_MODE 			 OFF
AUTO_INDEX_REPORT_RETENTION		 31
AUTO_INDEX_RETENTION_FOR_AUTO		 373
AUTO_INDEX_RETENTION_FOR_MANUAL
AUTO_INDEX_SCHEMA
AUTO_INDEX_SPACE_BUDGET 		 50

8 rows selected.

SYS@KKB> 

Intro

[设置为ON]

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','IMPLEMENT');

[设置为OFF]

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','OFF');

[仅生成报告]

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','REPORT ONLY');

另外需要注意的是通过Automatic Indexing生成的索引,通过命令drop文是删除不了,这就是为什么有上面auto_index的配置参数去删除,如保留多少天(默认 AUTO_INDEX_RETENTION_FOR_AUTO 是373天)

如下: Can not Drop index sys_ai_xxxxxxxx

LIN@KKB> select index_name from user_indexes;

INDEX_NAME
--------------------------------------------------------------------------------
SYS_AI_djph6g9pxbyxf
SYS_AI_829s8wj1jb4y4

LIN@KKB> drop index SYS_AI_829s8wj1jb4y4;
drop index SYS_AI_829s8wj1jb4y4
		   *
ERROR at line 1:
ORA-01418: specified index does not exist

LIN@KKB> 

从官方宣传Oracle Auto Index 达到自治功能,也是可以了解到为什么不能手动drop了

The new Automatic Indexing feature in Oracle Database 19c detects the need for indexes, creates them, and drops them automatically—without DBA intervention.

为什么是373天? 不清楚……

wiki 解释如下: (这个跟Oracle有啥关系?不懂…

标签:INDEX,AutoIndex,AI,AUTO,LIN,SYS,Oracle,Tips,KKB
来源: https://www.cnblogs.com/liuzhongrong/p/12272256.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有