捕获SQL计划基线
好消息是在Oracle11g中捕获SQL计划基线存储到SMB中一件相当容易的事情,首先,初始化参数OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES控制自动捕获SQL计划基线是否激活,这个参数的默认值是FALSE,意味着SQL计划基线不是自动捕获的,但是,一经DBA设置为TRUE(不管是在会话层还是在系统层),SPM就开始记录SQL语句的执行,当一条SQL语句不止被执行过一次时,该语句将被考虑作为SQL计划基线捕获候选者。
其次,一个新的Oracle11g包(DBMS_SPM)提供捕获和预先从几个源通过手动发送计划引入高性能SQL语句的能力:
◆在数据库当前缓存中发现了一个或多个SQL语句可以用于创建SQL计划基线,存储过程LOAD_PLANS_FROM_CURSOR_CACHE可以用于捕获任何库缓存(作为SMB的潜在候选者)中语句的子集。
◆存储在SQL调整集或一个AWR快照中的SQL语句可以被捕获并通过LOAD_PLANS_FROM_SQLSET存储过程翻译成SQL计划基线。
◆最后,SQL计划基线由外部输入转换表中的SQL语句衍生而来,这就意味着从一个完全不同的数据库捕获语句是可能的,也就是说,在一个QA环境中,预先在当前存储过程环境中种下它们。(我将在本系列文章的后面花费大量的时间讨论如何使其成为一个优秀的技术,以预防在数据库或应用程序升级过程中出现计划回退。)
查看SQL计划基线信息
在SMB中捕获的SQL计划基线元数据包括SPM属性和CBO计划控制,当一个新的而没有使用过的计划进入SMB后,它被标记为ENABLED,但是它不能标记为ACCEPTED,除非:(A)CBO已经评估了这个计划并将其视为最佳计划,或(B)这个计划已经演变成ACCEPTED模式。在CBO考虑使用某个执行计划前,它必须同时将其标记为ENABLED和ACCEPTED。
查看该元数据最简单的方法是查询DBA_SQL_PLAN_BASELINES数据字典视图,下面是该视图中大部分有价值的计划控制信息的摘要:
表1.1 SQL计划基线计划控制元数据 | |
属性 | 描述 |
SQL_HANDLE | 用字符串表示的SQL唯一性标识,它可以作为搜索关键字 |
PLAN_NAME | 用字符串表示的唯一的SQL计划,它可以作为搜索关键字 |
SQL_TEXT | 非正常SQL语句,实际上是文本 |
ORIGIN | 识别下面的SQL计划: |
l AUTO-CAPTURE:自动捕获 | |
l MANUAL-LOAD:手动演变 | |
l MANUAL-SQLTUNE:通过SQL调整顾问程序自动演变 | |
l AUTO-SQLTUNE:通过自动SQL调整程序自动演变 | |
ENABLED | 因为Oracle11g有下面任何一个原因,就表明该SQL计划是有效且很优秀的计划: |
l 自动接受(accepted)它,或 | |
l DBA通过存储过程DBMS_SPM.alter_SQL_PLAN_BASELINE()手动将它的状态强制设置为ACCEPTED | |
FIXED | SQL计划的FIXED属性被设置为YES将被视为使用CBO优化器,如果有多个计划被标记为FIXED,CBO将从这些标记了的计划中选择最佳的执行计划 |
OPTIMIZER_COST | 通过CBO使用这个执行计划执行SQL语句估量总体成本 |
另外一个查看执行一条SQL语句现存的SQL计划基线可能的影响的方法是通过新的DBMS_XPLAN包中的DISPLAY_SQL_PLAN_BASELINE存储过程实现的,例如:我可以用这个存储过程查看所有匹配SMB中的SQL语句的SQL计划基线,如果我也提供了该SQL语句计划的名字,那么它的执行计划也将同时显示出来。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
翻译
相关推荐
-
甲骨文自治数据库亮相 带来云计算新希望
早前甲骨文还不在云计算公司之列,而现在该公司正在迅速弥补其失去的时间。甲骨文的云计算核心是甲骨文自治数据库(O […]
-
2017年12月数据库流行度排行榜 定格岁末排名瞬间
数据库知识网站DB-engines最近更新的2017年12月份数据库流行度排名情况是否能提供更多的看点呢?TechTarget数据库网站将与您分享12月份的榜单排名情况,让我们拭目以待。
-
2017年11月数据库流行度排行榜 半数以上数据库积分减少
数据库知识网站DB-engines更新了2016年11月份的数据库流行度排行榜。TechTarget数据库网站将与您一同关注11月份的榜单排名情况。
-
控制合约 不再畏惧Oracle
许多公司都与Oracle有无限制授权协议,他们害怕离开这个协议,所以就证明他们在使用Oracle的软件,即使因为需求单独购买部分授权许可也可能总体是省钱的。