1)准备模拟
我创建了一个新表SH.SALES_AGENTS,并装入了一套大约420,000行的样例数据,然后,我在该表上创建五个索引:一个在主键SALESPERSON_ID上的唯一性(UNIQUE)索引和四个附加的索引(典型地用于决策支持系统DSS或联机事务处理应用程序OLTP以加快减速速度),列表1.1包括了我创建表、索引和更新它们的基于成本的优化器统计的DDL(数据描述语言)语句,LoadSalesAgents.sql包括了DML语句。
2)准备收集SQL
接下来,我创建了几条SQL语句使用不同的执行计划访问SH.SALES_AGENTS表,注意我提供了几个不同的访问路径情景:有时候,我允许基于成本的优化器使用所有可用的索引选择最佳执行计划,另外的情况下,我使用不合适的优化提示完全覆盖基于成本的优化器,列表1.2展示了这些通过LDGN用户执行的SQL语句,列表1.3展示了我如何启动捕获这些简单的SQL语句进入一个叫做STS_SPA_100的SQL调整集(STS)。
3)创建一个“之前”的性能基线
因为我之前的数据库映像现在已经准备好可以开始测试了,我创建一个SQL性能分析任务并让Oracle 11g决定任务的名字(TASK_69),如列表1.4展示的那样,这个新任务使用STS_SPA_100 SQL调整集作为SPA调整会话的输入,然后,我用存储过程DBMS_SQLPA.EXECUTE_ANALYSIS_TASK创建超前的性能基线映像。
4)修改数据库环境
一旦基线被成功创建,我将模拟最简单的修改情景,如列表1.5中例子,我移除了SH.SALES_AGENTS表的两个原始索引,然后我刷新了该表的统计数值。
5)创建一个“之后”的性能基线
要确定对这些原始索引改动的后果,相对与相同的工作量,我再次执行DBMS_SQLPA.EXECUTE_ANALYSIS_TASK存储过程,测试相同SQL调整集的执行,列表1.6展示了如何创建后面的性能基线。
6)比较“之前”的和“之后”的基线
最后,我执行列表1.7中的代码通过比较“之前”和“之后”的测试用例的结果判断修改的影响,然后,我通过象列表1.8中举例的那样调用DBMS_SQLPA.REPORT_ANALYSIS_TASK存储过程生成一个这些不同之处的简单的摘要报告。
报告结果的文本格式
(http://www.databasejournal.com/img/2007/10/JSC_Performance_Advisor_Report_1.html)(参考附件“报告1.txt”),报告清晰地显示,移除的索引对原始的8条SQL语句有很明显的影响:
◆有3条语句完全没有受到影响,即使移除了两条索引后也没有受到影响
◆意料之中的是,至少有1条SQL语句在索引移除后产生了消极的影响
◆但是,有4条SQL语句在移除2条索引后受到了明显的影响。这真的很有意义,因为这些语句是通过优化器提示强制使用这些索引的,这有助于提升它们原始的低劣的性能。
下一步
在本系列的下一篇文章中,我将讲述SQL性能分析器如何分析更复杂的Oracle数据库和环境的改变,包括一个说明如何分析一个经历从Oracle 10gR2环境转移到Oracle 11g环境的SQL工作负载的情景,我也将广泛地探讨如何使用Oracle数据库11g企业管理器(EM)控制面板提供的SQL性能分析器图形用户接口更容易地创建、执行和导航。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号

TechTarget
官方微博

TechTarget中国
翻译
相关推荐
-
控制合约 不再畏惧Oracle
许多公司都与Oracle有无限制授权协议,他们害怕离开这个协议,所以就证明他们在使用Oracle的软件,即使因为需求单独购买部分授权许可也可能总体是省钱的。
-
如何应对Oracle EBS实施中的六个挑战?
在18个月的时间里,Vitamix启动运行了Oracle电子商务套件(E-Business Suite,EBS),而且Vitamix还对诸如Oracle ATG Web Commerce等所有页面属性进行了重新整理,并实现了全球数据中心。
-
Oracle的云产品“砸了自己脚”?
Sparc和Solaris都是Oracle云计划的一部分,但是硬件和支持人员的减少意味着本地Solaris和Sparc将变得更加稀少。
-
2017年3月数据库流行度排行榜 Oracle卫冕之路困难重重
时隔一个月,数据库市场经过一轮“洗牌”,旧的市场格局是否会被打破,曾经占巨大市场份额的企业是否可能失去优势?