暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

Oracle 19C特性自动化索引

原创 薛晓刚 2022-12-27
1340

Oracle19C特性自动化索引

   我们来讲一下19C另外一个特性,自动化索引,这也是数据库AI的体现,实现了自动化运维。这里说明一下这个特性是一体机下使用效果好。非一体机的使用出了问题官方不支持。我们这里模拟是可以的。

                                                                                              图1

    首先如图1创建一个表,如图1.然后给表中插入数据,我写了一个存储过程。

create or replace procedure ii

as

z varchar2(10);

begin

  for i in 1..1000000 loop

    SELECT DBMS_RANDOM.STRING (‘A’, 10) into z FROM DUAL;

    insert into i values (i,z,sysdate-i/1440);

    end loop;

    commit;

    end;


                                                            图2

如图2中xxg是xuexiaogang的缩写,数据库是PDB2.    在命令中中执行这个存储过程写入了100万条数据。打开自动化索引的隐藏参数,(因为是一体机下才好用,非一体机就是不推荐使用。)

 

alter system set "_exadata_feature_on"=true scope=spfile;如图3


                                                                      图3

这也意味着数据库要重启。如图4重启数据库。

 

                                                                            图4

    把数据库自动索引的功能打开(选择哪种)。这里有三种分别是。这里传递一个信息,也有些公司有严格的把控,不轻易使用这个功能。我们这里演示采用第一种如图5.

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

启用自动索引

 

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

启用自动索引,但只作为不可见自动索引,无法被SQL所使用:

 

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

关闭自动索引


                                                                            图5

而且这个参数要在PDB级别设定。如图6,我们在CDB上确认一下,我在PDB2这个数据库上设置的是不是生效了。


                                                                                            图6

COLUMN parameter_name FORMAT A40

COLUMN parameter_value FORMAT A20

SELECT con_id, parameter_name, parameter_value FROM cdb_auto_index_config;

 

接下来我们看看执行计划,现在是没有索引,所以如图7是全表扫描。对象是XXG(xuexiaogang)


                                                                                                                             图7

 

注意这里我们要收集统计信息,否则如图8一样,是不会有作用。


                                                                                                                                  图8

收集统计信息的方法,使用管理用户运行程序包。如图9(在PDB下)


                                                                                                                                图9

收集统计完毕,检查一下,否则如图10,数据库知道这个表有100万记录了。


                                                                                                                                     图10

我们在编写一个存储过程图11,


                                                                                                                              图11

执行存储过程。让他反复查如图12,让数据库知道多次全表以后,自己根据场景去创建索引。


                                                                                                                                 图12

最后果然现在不是全表了,有索引了(图13),索引是SYS用户建立的,带了AI开头说明是AI推荐的索引。


                                                                                                                   图13

虽然在非Exadata下也可以实现,但是自动化索引是依靠强大的IO才能完成的,没有强大的IO,这样做会导致系统带来不稳定的因素。

 

最后修改时间:2022-12-27 11:33:41
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论