暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

8.4 SQL 性能分析器

原创 由迪 2021-02-26
1469

从前面的分析可以看出,由于优化建议器会对每条语句从多个方面分析,以找到最佳的调优方法,因此,这一过程也是相当消耗资源的。在调优建议器的参数当中,有多个参数是用于直接或间 接控制其对资源的消耗,例如时间限制(TIME_LIMIT),优化模式(MODE)、测试执行
(TEST_EXECUTE)等。因此,调优建议器在找到调优方法后,计算出的性能改进数据可能并不十分 精确。因此,在实施优化建议到生产环境之前,我们会希望获得一个更加准确的性能改进报告,以决定是否实施优化措施。此外,在某些情形下,例如产品中有新的模块上线、RDBMS 升级、大量数据迁移等,我们还会需要对一个模块或者整个系统的工作负载(Workload)变化做性能评估。
在 11g 中,Oracle 引入 SQL 性能分析器(SQL Performance Analyzer)帮助我们完成这些任务。我们在做 SQL 调优时,也能借助该工具在与生产环境相似的环境(如压力测试环境)中对一到多条语句(一组 SQL 调优集)的调优效果做评估。

提示:SQL 调优建议器在分析过程中找到更好的 SQL 调优配置时,会根据参数(TEST_EXECUTE)设置决定是否实际执行语句以比较调优收益,此时,它调用的就是 SQL 性能分析器的组件。

8.4.1 性能分析过程
SQL 性能分析器的主要目的是对相同的分析对象、在不同的环境运行结果做性能比较,得出性能报告。其分析过程包括以下几个步骤:
• 创建分析任务(DBMS_SQLPA.CREATE_ANALYSIS_TASK),与 SQL 调优建议器类似,其分析对象来源可以是:
o 直接输入一条 SQL 语句文本;
o 通过 SQL_ID 从缓存中查找一条语句;
o 通过 SQL_ID 从 AWR 的历史数据中查找一条语句;
o 从 SQL 语句集(SQLSET)中获取部分或全部语句;
• 修改任务参数(可选,接口为 DBMS_SQLPA.SET_ANALYSIS_TASK_PARAMETER),与 SQL 调优建议器类似,除了公共参数外,性能分析器也有自己的参数;
• 第一次执行分析任务(DBMS_SQLPA.EXECUTE_ANALYSIS_TASK),分析器会将执行结果相关 数据保存在数据字典当中,我们可以指定执行类型(EXECUTION_TYPE)是仅解析执行计划
(EXPLAIN PLAN)还是实际执行(TEST EXECUTE,默认值)目标语句;
• 修改当前环境,例如改变对象统计数据、修改优化器参数或其它运行参数、修改执行计划 基线或者 SQL 调优配置状态、创建或修改索引等;
• 第二次执行分析任务,对象语句会在修改后的环境中被重新解析、执行。分析器也会将执 行结果相关数据保存在数据字典当中;
• 第三次执行分析任务,对前面两次执行结果做性能比较,指定执行类型为性能比较
(‘COMPARE PERFORMANCE’);
• 获取分析报告(DBMS_SQLPA.REPORT_ANALYSIS_TASK);
SQL 性能分析器的参数包括:
image.png
image.png
其中,
• APPLY_CAPTURED_COMPILENV 设置是否使用工作负载(Workload)当中捕捉到的编译环境信息,0 为不使用;
• CELL_SIMULATION_ENABLED 用于是否模拟 EXADATA 的环境;
• COMPARISON_METRIC 为默认的用于衡量性能变化的性能统计数据,可以是:
o elapsed_time:语句执行消耗时间(包含解析时间、CPU 时间以及等待时间)
o parse_time:语句解析时间;
o cpu_time:语句执行占用的 CPU 时间
o user_io_time:用户 IO 时间;
o buffer_gets:缓存数据块获取次数;
• DATABASE_LINK:分析器可以通过该数据库链接在远程数据库上执行目标语句;
• DISABLE_MULTI_EXEC 设置是否多次执行目标语句获得其平均性能数据,以提高结果的准确性;
• EXECUTE_FULLDML:对于会导致数据变化的语句(INSERT、DELETE、UPDATE 和
MERGE),该参数决定是否实际修改数据————实际修改数据还会有事务等待、索 引维护、完整性检查等额外开销,如果设置修改数据,分析器会在语句结束后回滚数 据;
8.4.2 SQL 性能分析示例
本节当中,我们选择两个单条语句作为性能分析示例。 示例 1:优化器特性参数变化的性能分析
image.png
image.png
image.png
image.png

最后修改时间:2021-02-27 14:09:20
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论