Oracle数据库11g:SQL计划管理(三)
2008-09-04 12:50:18 来源:WEB开发网直到SPM演变这个新的计划,否则,这个计划不会通过语句的SQL计划基线被利用,当我执行函数DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE时,Oracle 11g 将立即评估所有可用的SQL计划基线并性能得到提升的计划,这个函数返回一个CLOB类型的值,它列出了所有状态被修改为ACCEPTED的SQL计划基线,我在列表3.9值展示了这个计划演变的结果,为了说明无论何时执行这条sql语句时该SQL计划基线都将被使用到,我对该语句运行了一个执行计划并使用+NOTES指令格式化输出结果。
通过SQL调整顾问自动演变计划
Oracle 11g 也提供了SQL计划基线的自动演变,通过对每个选择的SQL语句执行SQL调整顾问程序实现,因为自动SQL调整(AST)批处理过程在每天夜间规律地执行时也会请求SQL调整顾问,AST也可以接受SQL配置文件,无论何时,配置文件能比当前的SQL计划基线提供更好的性能。
修改SQL计划基线的属性
Oracle 11g允许非常细粒度地控制捕获的SQL计划基线的状态和可用性,而不顾它们的起源,要说明这一点,我准备了三条SQL语句(查看SPM_3_2.sql,我用相似的注释标记它们以好识别),一旦执行,我直接从库缓存中捕获它们的执行计划,最后使用DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE将它们载入SMB中作为SQL计划基线,我应用函数DBMS_SPM.alter_SQL_PLAN_BASELINE修改每个SQL计划基线的各种属性,这些修改过的属性包括:
◆ENABLED :设置该属性的值为NO告诉Oracle 11g临时禁用某个计划,一个SQL计划必须同时标记为ENABLED和ACCEPTED,否则CBO将忽略它
◆FIXED:实际上一个SQL计划基线可能比一个执行计划更有参考意义,当这个属性对至少一个SQL计划基线的计划被设置为YES是,那个计划将是优化器唯一的选择,即使如果某个计划可能拥有更低的成本。这让DBA可以撤销SMB的默认行为,对于转换一个存储概要进入一耳光稳定的SQL计划基线特别有用,注意当一个新计划被添加到被标记为FIXED的SQL计划基线,该新计划不能被利用除非它申明为FIXED状态
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
更多精彩
赞助商链接