日期:2014-05-16  浏览次数:20366 次

Oracle DB 通过SQL 优化管理性能
? 将SQL 优化指导用于:
– 确定使用资源最多的 SQL 语句
– 优化使用资源最多的 SQL 语句
? 使用SQL 访问指导优化工作量

  • SQL 优化
SQL 优化进程
? 确定没有很好地优化的SQL 语句。
? 优化各条语句。
? 优化整个应用程序。

一般情况下,效果最明显的优化工作是SQL 优化。没有很好地优化的SQL 会不必要地使用过多资源。这种低效率会降低可伸缩性、使用更多的OS 和数据库资源并增加响应时间。要对没有很好地优化的SQL 语句进行优化,必须先确定这些语句,然后再进行优化。可以分别对各条SQL 语句进行优化,但优化一条语句的解决方法经常会影响多条其它语句的性能。
顾名思义,使用资源最多的SQL 语句是需要优化的语句。这些语句的用时最长,使用的CPU 资源最多,或者物理或逻辑读取次数最多。
优化各条语句的方法是:检查优化程序统计信息检查最高效的访问路径的解释计划,测试替代SQL 构造,以及测试可能的新索引、实体化视图和分区。
使用优化后的SQL 语句测试整个应用程序的性能。整体性能是否有所提高?
方法很可靠,但有些拖沓。优化单条语句并不难。测试各条语句优化对应用程序的整体影响可能非常困难。
在Oracle Database 11 g 中,可以使用一组SQL 指导来确定和优化语句(单独优化或集体优化)。

  • SQL 指导
Oracle Database 11 g 提供了一组SQL 指导:SQL 访问指导、SQL 优化指导、SQL 性能分析器和SQL 修复指导。AWR 可确定最近的高负荷SQL 语句并记录有关的统计信息。
SQL 优化指导可分析一个或多个SQL 语句(一次分析一个)。它会检查统计信息、SQL 概要文件、索引、实体化视图以及调整后的SQL 。SQL 优化指导可随时通过手动方式运行;但主要是在每个维护窗口期间针对最近的高负荷SQL 语句运行。单击“Automatic SQL Tuning Results(自动SQL 优化结果)”可查看和实施建议。可以对此自动作业进行配置,自动为高负荷语句实施建议的SQL 概要文件。
SQL 访问指导会考察应用到一组SQL 语句的更改,确定性能是否有净提高。这组语句可能是一组假想的SQL 语句,以往的语句或手动创建的语句。
SQL 性能分析器可用于预测和防止任何影响SQL 执行计划结构的数据库环境更改所带来的潜在性能问题。
SQL 修复指导是在某个SQL 语句因严重错误而失败时从支持工作台运行的。严重错误还会产生意外事件。修复指导会尝试查找并推荐一个SQL 补丁程序。如果未找到任何补丁程序,可以接着在支持工作台中打包意外事件,并将意外事件程序包作为服务请求(SR) 提交给Oracle  技术支持部门。

  • 自动SQL 优化结果
默认情况下,自动SQL 优化任务在每天晚上运行。自动SQL 优化结果链接会显示结果概要页。如果单击“View Report(查看报表)”,则可查看接受检查的每条SQL 语句。
单击“Configure(配置)”按钮会显示一个页面;在此页面中,可以更改自动优化任务的默认设置,并启用SQL 概要文件自动实施功能。

  • 实施自动优化建议
如果单击“Automatic Tuning Results Summary (自动优化结果概要)”页上的“View Report (查看报表)”按钮,将显示“Automatic SQL Tuning Result Details (自动SQL 优化结果详细资料)”页。可以实施所有建议,或细化以查看或实施单个建议。