Oracle数据库11g:SQL计划管理(二)
2008-09-04 12:50:24 来源:WEB开发网好消息是当部署一个崭新的应用程序到下列环境中时,Oracle 11g提供了一些避免降低性能的希望:
◆对于一个内部应用程序,我只需要捕获应用程序最典型的SQL语句到SQL调整集进入QA环境进行评估
◆对于一个第三方应用程序,在应用程序部署之前,我可以要求厂商就所有SQL语句发送给我,因此我可以预先捕获并评估它们的性能,或者:当它在一个QA或开发环境中执行时,我直接从库缓存中捕获它最常用的SQL语句。
一旦我捕获了新应用程序的SQL语句,我就可以使用现有的QA或开发数据库捕获它们对应的SQL计划基线,然后直接转移那些基线进入生产数据库的SMB中,最终结果如何呢?当应用程序最终部署好后这些执行计划早已经准备好了,因此,在首次部署到生产环境中时,可以让CBO不再为这些忙碌的SQL语句建立执行计划了,最好的情况是,如果最佳执行计划提升了这些SQL语句的性能,CBO将自动演变这些改进多的计划。
准备模拟
在我模拟这个情景之前,我执行了一些配置任务,我在列表2.5中将它们集中起来了:
◆首先我用存储过程DBMS_SPM.drop_SQL_PLAN_BASELINE清除了我当前的Oracle 11g数据库SMB中的SQL计划基线。这个存储过程接受“SQL句柄”(SQL handle)和“计划名字”(plan name)作为参数,然后从SMB中移除对应的SQL计划基线,我编写了一个无名的PL/SQL块,它利用一个游标捕获所有的SQL计划基线,游标的SQL文本包括了一个类素SPM_2的注释,然后反回对应的SQL句柄/计划名字组合给存储过程,这个方法允许细粒度的控制SMB中的内容,我将贯穿这些情景多次使用它,当必要时有选择性地减少SMB的粒子数。
◆然后我会构造组成销售人员管理系统的基本组件,如在SFA_Setup.sql中显示的内容,我就创建一个新的方案所有者(SFA),授予它适当的系统和对象权限,最后在该方案中创建并填充几个表。
- ››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 外部表导入时间日期类型数据,多字段导入
更多精彩
赞助商链接