WEB开发网
开发学院数据库Oracle Oracle数据库11g:SQL计划管理(二) 阅读

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

 2008-09-04 12:50:24 来源:WEB开发网   
核心提示: 从STS捕获语句的SQL文本、绑定变量、执行计划和执行统计后,我将保留它们直到数据库版本升级完毕,Oracle数据库11g:SQL计划管理(二)(2),到那时我将转换这些语句执行计划成为SQL计划基线,当这些语句对于升级后的数据库第一次执行时,然后,我会使用存储过程DBMS_SQLTUNE

从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

上一页  1 2 3 4 5 6 7  下一页

Tags:Oracle 数据库 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接