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

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

 2008-09-04 12:50:24 来源:WEB开发网   
核心提示: 好消息是当部署一个崭新的应用程序到下列环境中时,Oracle 11g提供了一些避免降低性能的希望:◆对于一个内部应用程序,Oracle数据库11g:SQL计划管理(二)(5),我只需要捕获应用程序最典型的SQL语句到SQL调整集进入QA环境进行评估◆对于一个第三方应用程序,在应用程序部署之

好消息是当部署一个崭新的应用程序到下列环境中时,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),授予它适当的系统和对象权限,最后在该方案中创建并填充几个表。

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

Tags:Oracle 数据库 SQL

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