当前位置: 首页 > news >正文

自动索引技术实操

数据库中哪些索引需要创建、哪些索引可以删除?
利用19c特性auto index来告诉你答案

--查看当前有哪些advisor任务
set lin 200
col task_name for a32
col DESCRIPTION for a32
col advisor_name for a32
select task_name,DESCRIPTION,advisor_name,status,to_char(EXECUTION_START,'yyyy-mm-dd hh24:mi:ss')EXECUTION_START from dba_advisor_tasks where task_name not like 'ADDM%';

--看看这些任务状态是否激活
col task_name for a32
col last_run for a22
select task_name,status,enabled, to_char(last_schedule_time,'yyyy-mm-dd hh24:mi:ss')last_run from dba_autotask_schedule_control;

--非一体机环境需要设置隐含参数,23ai就默认打开
alter system set "_exadata_feature_on"=true scope=spfile;
shu immediate
startup

--查看当前auto index配置项
col PARAMETER_NAME for a35
col PARAMETER_VALUE for a35
col LAST_MODIFIED for a22
col MODIFIED_BY for a12
select PARAMETER_NAME,PARAMETER_VALUE,to_char(LAST_MODIFIED,'yyyy-mm-dd hh24:mi:ss') modified,MODIFIED_BY from dba_auto_index_config;

--运行ai功能模式:只提供报表、自动添加删除(慎用)、关闭
EXEC dbms_auto_index.configure('AUTO_INDEX_MODE', 'REPORT ONLY')
--EXEC dbms_auto_index.configure('AUTO_INDEX_MODE', 'IMPLEMENT')
--exec dbms_auto_index.configure('auto_index_mode','off');
exec dbms_auto_index.configure('auto_index_schema','test',allow=>true); --只有test可用 用户名null就是全部
--exec dbms_auto_index.configure('auto_index_schema','test',allow=>false); --除去test都可用
exec  dbms_auto_index.configure('auto_index_default_tablespace','users')

--自动创建的索引必须用drop_auto_indexes方法删
exec dbms_auto_index.drop_auto_indexes(owner=>'test', index_name=>'SYS_AI_001', allow_recreate=>false);

--运行一段时间后看报告
set lines 300 trims on pages 1000 long 10000000 
col report_hist for a120
var rep CLOB
exec :rep:=dbms_auto_index.report_activity(activity_start=>sysdate -2, section=>'ALL', level=>'ALL')
spo report_hist.txt
select :rep report from dual;
spo OFF

exec :rep:=dbms_auto_index.report_activity(activity_start=>sysdate -2, section=>'ALL', level=>'ALL', type=>'HTML')
select dbms_auto_index.report_last_activity() report from dual;
select TABLE_NAME,index_name,index_type,status,auto,VISIBILITY,last_analyzed from dba_indexes where owner='TEST';

--哪些索引是自动创建的
COL TABLE_NAME FOR A22
COL INDEX_NAME FOR A22
select TABLE_NAME,index_name,index_type,status,auto,VISIBILITY,last_analyzed from dba_indexes where auto='YES';

--决策结果
col EXEC_NAME for a30
select EXECUTION_NAME exec_name,SQL_ID, ORIGINAL_PLAN_HASH_VALUE ori_plan, AUTO_INDEX_PLAN_HASH_VALUE auto_plan, ORIGINAL_BUFFER_GETS ori_buffget, AUTO_INDEX_BUFFER_GETS auto_buffget, round(ORIGINAL_CPU_TIME) ori_cpu, round(AUTO_INDEX_CPU_TIME) auto_cpu, STATUS from DBA_AUTO_INDEX_VERIFICATIONS;

--自动索引处置命令:新建、重建、设置unusable
set long 99999 longc 99999
col command for a30
col STATEMENT for a65
COL INDEX_NAME FOR A22
col EXECUTION_NAME for a28
select EXECUTION_NAME ,INDEX_NAME,TABLE_NAME,COMMAND,STATEMENT,error# from DBA_AUTO_INDEX_IND_ACTIONS;


--特性相关数据字典
col OBJECT_NAME for a32
select distinct object_name from dba_objects where object_name like 'DBA_AUTO_INDEX%';
select * from DBA_AUTO_INDEX_STATISTICS where rownum<11;

col sql_id for a13
select EXECUTION_NAME,ACTION_ID,SQL_ID,PLAN_HASH_VALUE,COMMAND,STATEMENT,START_TIME from DBA_AUTO_INDEX_SQL_ACTIONS;

col ERROR_MESSAGE for a20
select * from (select * from DBA_AUTO_INDEX_EXECUTIONS   order by EXECUTION_START) where rownum<11;

相关文章:

  • ZCC5090EA适用于TYPE-C接口,集成30V OVP功能, 最大1.5A充电电流,带NTC及使能功能,双节锂电升压充电芯片替代CS5090EA
  • SQLite Alter 命令详解
  • 使用VSCode Debugger 调试 React项目
  • AutoGen学习笔记系列(二)Tutorial - Messages
  • 服务降级
  • 惯性动捕手套:高精度、高性价比虚拟现实手套
  • 1.3 ASPICE的质量管理
  • 力扣刷题DAY4(哈希表+双指针/简单)
  • OpenHarmony 进阶——HDF 驱动框架的原理小结
  • PPT 小黑第38套
  • AI入门7:基于Ollama+DeepSeek+Dify搭建本地知识库
  • 28.<Spring博客系统⑤(部署的整个过程(CentOS))>
  • 鸿蒙HarmonyOS NEXT开发:使用三方库实现Echarts图表功能的实战指南
  • 大型网站系统架构演化相关书籍
  • 洛谷 P2437:蜜蜂路线 ← 高精度加法 + Fibonacci
  • 【秩序的涌现 关键字摘取】
  • 缓存那些事儿
  • 基于Windows11的RAGFlow安装方法简介
  • Serilog: 强大的 .NET 日志库
  • 国产编辑器EverEdit - 超级丰富的标签样式设置!
  • 手机高端网站开发/针对大学生推广引流
  • 网站防红怎么做的/石家庄seo网络优化的公司
  • wordpress 4.6.1 漏洞/seo 推广教程
  • 潍坊做网站联系方式/广州seo公司排行
  • 自己建网站做微商/优速网站建设优化seo
  • 怎么使用腾讯云做网站/个人网页制作