Oracle数据库11g:SQL计划管理(二)
2008-09-04 12:50:24 来源:WEB开发网从STS捕获语句的SQL文本、绑定变量、执行计划和执行统计后,我将保留它们直到数据库版本升级完毕,到那时我将转换这些语句执行计划成为SQL计划基线,当这些语句对于升级后的数据库第一次执行时,无论如何,基于成本的优化器(CBO)都将检测SQL计划基线是否仍然可用,如果CBO判断SQL计划基线提供了一个更有效的执行计划,它将用该基线计划替换原有的计划,最终结果是一个可能很严重的SQL计划倒退是可以完全避免的。
收集SQL工作负载
要说明这个概念,我将首先在Oracle10gR2上创建一个SQL工作负载。我将在销售历史方案(SH)的多个表中使用5个查询,查询SQL(SPM_2_1.SQL),用来模拟一个在数据仓库应用程序中的SQL工作负载,在我开始工作负载前,我将初始化列表2.1中的代码,它使用DBMS_SQLTUNE.CAPTURE_CURSOR_CACHE_SQLSET来捕获工作负载的SQL语句到一个名叫STS_SPM_200的SQL调整集中。
打包并导出SQL调整集
一旦我将SQL工作负载捕获到一个SQL调整集中,我准备将它转移到Oracle11gR1数据库中,列表2.2展示了如何做:
◆创建中间表作为SQL调整集STS_SPM_200的容器
◆通过存储过程DBMS_SQLTUNE.PACK_STGTAB_SQLSET转移SQL调整集到中间表
◆通过数据泵导出工具导出中间表数据到一个名叫DumpStagingTable.dmp的导出文件
转移SQL调整集
在我拷贝了数据泵导出文件到我的Oracle11g数据库的默认数据泵目录后,我将使用Oracle数据泵导入工具和适当的参数导入中间表到目标Oracle11gR1数据库,然后,我会使用存储过程DBMS_SQLTUNE.UNPACK_STGTAB_SQLSET打开存储在中间表中的SQL工作负载。列表2.3展示了转移过程的详细情况。
载入SQL调整集内容到SPM
- ››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 外部表导入时间日期类型数据,多字段导入
更多精彩
赞助商链接