龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

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

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
载入SQL调整集内容到SPM 为了完成转移存储在SQL调整集中的语句,我将直接载入这些语句到SQL管理库,而不用存储过程DBMS_SPM来完成,我会使用企业管理器数
载入SQL调整集内容到SPM
为了完成转移存储在SQL调整集中的语句,我将直接载入这些语句到SQL管理库,而不用存储过程DBMS_SPM来完成,我会使用企业管理器数据库控制的SQL计划控制接口,从“server”页面有链接到它的入口:

2.1 SQL计划控制主面板

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

2.2 载入SQL调整集到SMB

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

2.3 SQL调整集载入的结果

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

2.4.1 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中的五条语句执行这个存储过程的结果。

精彩图集

赞助商链接