Oracle固定执行计划的方法--outline、SQL Profile和SPM(绑定执行计划)

0    593    2

Tags:

👉 本文共约8937个字,系统预计阅读时间或需34分钟。

SQL概要(SQL Profile)

SQL Profile就是为某条SQL语句提供除了系统统计信息、对象(表和索引等)统计信息之外的其它信息,比如运行环境、额外的更准确的统计信息,以帮助优化器为SQL语句选择更适合的执行计划。SQL Profile可以说是Outline的进化。Outline能够实现的功能SQL Profile也完全能够实现,而SQL Profile具有Outline不具备的优化,最重要的有两点:①SQL Profile更容易生成、更改和控制。**②SQL Profile在对SQL语句的支持上做得更好,也就是适用范围更广。**

对于sqlprof_attr部分的数据可以使用脚本coe_xfr_sql_profile.sql脚本生成。

使用SQL Profile的两个目的:①锁定或者说是稳定执行计划。②在不能修改应用中的SQL的情况下使SQL语句按指定的执行计划运行。

SQL Profile最大的优点是在不修改SQL语句和会话执行环境的情况下去优化SQL的执行效率,适合无法在应用程序中修改SQL时。

SQL Profile对以下类型语句有效:

  • SELECT语句;

  • UPDATE语句;

  • INSERT语句(仅当使用SELECT子句时有效);

  • DELETE语句;

  • CREATE语句(仅当使用SELECT子句时有效);

  • MERGE语句(仅当作UPDATE和INSERT操作时有效)。

另外,使用SQL Profile还必须有CREATE ANY SQL PROFILE、DROP ANY SQL PROFILE和ALTER ANY SQL PROFILE等系统权限。

有两种生成SQL Profile的方法,分别是手动和采用STA来生成。

SQL Profile使用示例--手工创建SQL Profile

创建测试表,根据DBA_OBJECTS创建,OBJECT_ID上有索引

查看SQL默认执行计划,走了索引,通过指定Outline可以获取到系统为我们生成的hint

如果我们想让它走全表扫描,首先获取全表扫描HINT

可以看到全表扫描的Hint已经为我们生成了,我们选取必要的hint就OK了,其它的可以不要,使用SQL Profile

查看是否生效,已经生效了:

①、 coe_xfr_sql_profile.sql

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
Oracle固定执行计划的方法--outline、SQL Profile和SPM(绑定执行计划)后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部