Oracle数据库11g:SQL计划管理(二)(2)

日期: 2008-06-17 作者:Jim Czuprynski翻译:黄永兵 来源:TechTarget中国

  载入SQL调整集内容到SPM


  为了完成转移存储在SQL调整集中的语句,我将直接载入这些语句到SQL管理库,而不用存储过程DBMS_SPM来完成,我会使用企业管理器数据库控制的SQL计划控制接口,从“server”页面有链接到它的入口:


  SQL计划控制主面板
             


              图2.1 SQL计划控制主面板
 
  注意在我们早前的实验中产生的SQL计划基线在这里列出来了,包括它们当前的状态和可用性。在下面的图2.2中,我将从面板中那些可用的调整集中选择SQL调整集STS_SPM_200:


  载入SQL调整集到SMB中    


                   图2.2 载入SQL调整集到SMB中
 
  一旦我选择了恰当的SQL调整集并点击了载入(Load)按钮,Oracle11g直接从选择的STS中自动载入SQL语句到SMB中,如下面图2.3:


  SQL调整集载入的结果 


            图2.3 SQL调整集载入的结果
 
  注意有五个SQL计划基线的状态都是ENABLED和ACCEPTED,意味着当一条SQL语句遇到了匹配的hash值时,CBO会使用它们作为直接的候选者。点击名称(Name)栏的链接可以查看每个SQL计划基线的详细情况。下面是选择基线名称为SYS_SQL_685ea4c28ec1a586的结果:


  SQL语句SPM_2.1.3执行计划(一)


           图2.4.1 SQL语句SPM_2.1.3执行计划(一)


  SQL语句SPM_2.1.3执行计划(二)
 
         图2.4.2 SQL语句SPM_2_1.3执行计划(二)
 
  概念证明


  为了证明潜在的SQL语句性能倒退减少了或完全消除了,现在我将简单地执行SPM_2_1.SQL中相同的五条SQL语句,并检验CBO的确选择了预先载入的SQL计划基线而不是执行一个新的执行计划效率更低的解析。判断这个的最简单的方法是为这五条语句执行DBMS_XPLAN.DISPLAY_SQL_PLAN_BASELINE存储过程,当为FORMAT参数解析TYPICAL+NOTE的值时需要显示CBO已经选择的计划,如果CBO的确选择了一个现有的SQL计划基线作为它的执行计划,+NOTE指令指示存储过程显示一条记录。列表2.4显示了为SPM_2_1.sql中的五条语句执行这个存储过程的结果。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐