前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle智能之SQL诊断:SQL Tuning Advisor推荐执行计划

Oracle智能之SQL诊断:SQL Tuning Advisor推荐执行计划

作者头像
数据和云
发布2018-03-07 16:50:50
1.2K0
发布2018-03-07 16:50:50
举报
文章被收录于专栏:数据和云数据和云

编辑手记:在前一段,一篇智能数据库优化的论文引起广泛的关注,其实在 Oracle 数据库中,已经引入了大量自动化和智能化的方法去进行自动调节,包括在 SQL 层面的智能诊断分析和建议。

张大朋(Lunar)Oracle 资深技术专家 Lunar 拥有超过十年的 ORACLE SUPPORT 从业经验,曾经服务于ORACLE ACS部门,现就职于 ORACLE Sales Consultant 部门,负责的产品主要是 Exadata,Golden Gate,Database 等。

本文的测试目的,起因一个问题:当有hint时,并且hint跟需要绑定的执行计划有冲突,谁的优先级高?

在这个演示过程中,使用SQL Tuning Advisor来进行辅助,在 Oracle 数据库中,SQL Tuning Advisor 的智能化程度可能超过很多人的想象,应该多学习和使用。

首先创建一个测试用例:

LUNAR@lunardb>create table lunartest1 (n number ); Table created. Elapsed: 00:00:00.08 LUNAR@lunardb>begin 2 for i in 1 .. 10000 loop 3 insert into lunartest1 values(i); 4 commit; 5 end loop; 6 end; 7 / PL/SQL procedure successfully completed. LUNAR@lunardb>create index idx_lunartest1_n on lunartest1(n); Index created. Elapsed: 00:00:00.04

执行查询,我们看到sql按照hint的方式没有使用索引,而是全表扫描,这是我们预期的结果:

下面我们运行SQL Tuning Advisor来生成建议报告:

查看生成的报告内容:

这里我们看到SQL Tuning Advisor提示了两个建议:

1.收集统计信息:execute dbms_stats.gather_table_stats(ownname => 'LUNAR', tabname =>'LUNARTEST1', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,method_opt => 'FOR ALL COLUMNS SIZE AUTO');2,提供了一个执行计划建议:execute dbms_sqltune.accept_sql_profile(task_name =>'Lunar_tunning_bjgduva68mbqm', task_owner => 'LUNAR', replace =>TRUE);

并且给出了这个执行计划和原始执行计划的对比,可以看到 执行效率提高了89%以上,逻辑读从23降低为2,减少了91.3%。 我们按照建议执行以上的两条命令。首先收集统计信息,再接受建议的执行计划,现在看看 SQL 执行的情况:

这里我们看到,这个执行计划中已经使用了索引,并且逻辑读从49降低为14。

现在我们查看一下这个SQL Profile的OUTLINE:

这里我们看到该SQP Profile中提供了详细的表和列的统计信息 并且有“IGNORE_OPTIM_EMBEDDED_HINTS”,也就是忽略嵌入到SQL中的hint 。

结论:虽然这个SQL的hint中指定了no index,即不使用索引,但是SQL语句仍然按照SYS_SQLPROF_015236655fb80000指定的profile使用了index。 这说明dbms_sqltune.accept_sql_profile方式绑定的执行计划优先级高于hint指定是否使用索引的方式。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据和云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云顾问
云顾问(Tencent Cloud Smart Advisor)是一款提供可视化云架构IDE和多个ITOM领域垂直应用的云上治理平台,以“一个平台,多个应用”为产品理念,依托腾讯云海量运维专家经验,助您打造卓越架构,实现便捷、灵活的一站式云上治理。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档