摘要–根据王健老师在Oracle公益课上的分享,进行了笔记整理
1、
SPA
SPA的全称是SQL Performance Analyzer.
SPA的主要用途是预测系统更改对SQL工作负载的影响
Database Replay
Database Replay使用的流程为:在生产系统中捕获工作负载,然后在测试环境下进行重放。
RAT
SPA和Database Replay共同组成Oracle的数据库组件Oracle RAT(Real Application Testing)
2、使用场景
适合测试性能相关的,例如测试新的系统是否满足性能要求,数据库服务器升级后的性能,更换数据库服务器硬件后的性能等等
3、典型用法
第一步,设置测试系统中,主要注意的是测试环境与源环境的相似性,启用闪回以便循环往复,使用Oracle EM进行监控
第二步,SQL单元测试中,主要建议是始终在Database Replay前先执行SPA,然后用SPA对性能降低的SQL进行修正
第三步,加载测试中,主要建议包括至少执行2次重放以决定最佳策略
4、SPA 流程
简单来说就是创建STS(SQL调优集),在变更前后执行测试,对比这两次测试
SPA调优的对象即STS:SQL Tuning Set,包括SQL文本,绑定变量,执行计划,执行统计信息。STS可以在线从Cursor Cache,或离线从AWR中捕获。
STS中的DML语句可以设置为执行后回滚,以免对数据库造成更改
SPA可以验证上图中列出的变更,包括参数变化,数据库升级等
调优方案可以导出并导入到生成环境
5、SPA 报告
6、最佳时间流程
成功的PoC应包含以上步骤
7、具体情况看如下介绍:
第一步中,主要的建议是明确期望值和成功标准,并每次测试一个更新,以免交叉影响。
第2步中,需要了解应用负载特征,以便指定有针对性的测试计划。
第3步中,要注意捕获工作负载的全面性和典型性。
重放模式默认和推荐的方式是基于时间。
8、案例
9、相关资源请参见下图