Oracle数据库11g新特性:SQL Performance Analyzer
2008-12-16 13:03:30 来源:WEB开发网在该系列前期的文章中,您学习了数据库重放。数据库重放是一款很棒的工具,可用于捕获数据库中的实际负载并随意重放。它是 Oracle 真正应用测试选件的一部分,它的重点是“实际”一词,即重放的负载就是数据库中实际发生的负载。
在数据库重放中,捕获的全部负载都针对数据库进行重放。但是,如果您不想那样做那该怎么办?例如,您可能很想了解 SQL 执行计划以及 SQL 性能是如何受更改影响的,因为它们会严重影响应用程序的性能和可用性。此外,数据库重放只重放捕获的负载。在生产版本中执行之前,您可能很想知道参数更改对某些 SQL 的影响。
这一领域正是真正应用测试系列的另一个重要组件 SQL Performance Analyzer (SPA) 的用武之地。通过 SPA,您可以根据各种更改类型(如初始化参数更改、优化程序统计刷新和数据库升级)播放特定的 SQL 或整个的 SQL 负载,然后生成比较报告,帮助您评估它们的影响。在本文中,您将学习如何使用 SQL Performance Analyzer 工具解决这个重要的问题。
示例问题
我们来进行一个测试。首先,我们定义要解决的问题。
这是一个典型的问题:Oracle 不使用索引,而您想了解其中的原因。为了回答这个问题,我拜读了 Oracle 精英 Tim Gorman 的经典论文“Searching for Intelligent Life in Oracle's CBO”。(在 Web 上随处都能找到这篇论文多种形式的各个版本。)
Tim 的一个建议是,将 optimizer_index_cost_adj 参数的值由默认的 100 更改为一个较小的值。这篇论文还给出了计算这个值的公式。根据公式,在我的案例中,我计算得出这个值为 10.但是,这带来一个比较棘手的问题:这样的更改会对每条 SQL 语句都有裨益吗?
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
更多精彩
赞助商链接