玩转Oracle EM12c-应用测试管理篇

  • 格式:pptx
  • 大小:1.67 MB
  • 文档页数:25

下载文档原格式

  / 25
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下一步 T2.ROW_ID, T14.LOGIN, T25.ROW_ID, T25.PAR_ROW_ID, T25.MODIFICATION_NUM, T25.CREATED_BY, T25.LAST_UPD_BY, T25.CREATED, T25.LAST_UPD, T25.CONFLICT_ID,
– 理想的执行计划影响分析解决方案:数 据库升级、优化统计信息刷新、新索引 创建、数据库迁移等.
– 为性能和可扩展性考虑的加载测试方 案
– 捕获生产环境中的整个数据库负载( queries, DML, DDL, PL/SQL, etc.) ,包括并行
– 在测试环境中精确回放所有负载,包 括并行
– 理想的解决方案:系统升级、系统迁 移、配置变更 (单实例到RAC)、存储 变更等
以生产水准测试系统变更
捕获 PRODUCTION
Workload
回放
TEST
Database Replay

1
• •
捕获
2
回放
3 分析& 补救
• 在生产中捕获负载
– 捕获所有生产负载,包括真实的压力,时间,并行属性等 – 将捕获的负载文件转移到测试系统
• 在测试系统中回放
– 在测试系统中做你期望的变更 – 以生产特征回放负载
Divergence
%
100 80 60 40 20 0
Capture
0.04
Replay Baseline
Seconds
7000 6000 5000 4000 3000 2000 1000
0
I/O Wait Time
6602.46
1486.55
Capture
Replay Baseline
Duration
SQL PERFORMANCE ANALYZER (SPA)
为什么需要SPA
• 业务需要快速适应变化,以满足竞争、合规和发展的需要
– 数据库升级、Schema变更、统计信息刷新 – SQL性能衰退:系统性能变差的原因
• 现有测试环境与限制
– 高开销的捕获、只有部分负载、优化器环境和生产环境差异太大、绑定变量 – 超大负载(10万条以上的SQL量很普通) – 人工操作,极其耗时 – 非端到端的测试方案 – 直接在生产库中测试的情形也并非没有
•RAC nodes, Interconnect •OS Platforms, OS Upgrades
•CPU, Memory •Storage •Etc.
Clien t
Clien t
Clien
…t
中间件
Storage
Recording of External Client Requests
*从Oracle Database 11.2版本开始支持共享服务器
5000 0
25055.79
30079.74
Capture
Replay Baseline
捕获与回放基线区间的重大变化
回放区间报告:Top SQL Changes
5.9 hr 0.6 hr
罪魁祸首!!!
• SELECT T9.CONFLICT_ID, T9.LAST_UPD, T9.CREATED, T9.LAST_UPD_BY, T9.CREATED_BY, T9.MODIFICATION_NUM, T9.ROW_ID, T4.KEY_VALUE, T25.PR_DEPT_OU_ID, T1.INTEGRATION_ID, T1.PRTNR_FLG, T25.PR_REGION_ID, T25.CITIZENSHIP_CD, T6.ATTRIB_07, T25.EMAIL_ADDR, T25.EMP_FLG, T25.FAX_PH_NUM, T25.FST_NAME, T25.CITIZENSHIP_CD, T25.HOME_PH_NUM, T25.AGENT_FLG, T25.JOB_TITLE, T25.LAST_NAME, T25.SEX_MF, T25.MEMBER_FLG, T25.MID_NAME, T25.OWNER_PER_ID, T9.NAME, T25.PERSON_UID, T25.PRIV_FLG, T20.STATUS, T8.PR_EMP_ID, T3.NAME, T25.CURR_PRI_LST_ID, T25.PR_OU_ADDR_ID, T1.NAME, T20.PR_ADDR_ID, T25.PR_EMAIL_ADDR_ID, T25.PR_ALT_PH_NUM_ID, T25.PR_REP_DNRM_FLG, T25.PR_REP_MANL_FLG, T25.PR_REP_SYS_FLG, T25.PR_MKT_SEG_ID, T22.PR_EMP_ID, T8.PR_EMP_ID, T13.LOGIN, T18.LOGIN, T17.PR_FAX_NUM_ID, T25.PR_GRP_OU_ID, T25.PR_INDUST_ID, T25.PR_NOTE_ID, T25.PR_OPTY_ID, T25.BU_ID, T25.PR_SYNC_USER_ID, T25.PR_PER_ADDR_ID, T25.PR_PER_PAY_PRFL_ID, T25.PR_POSTN_ID, T25.PR_PROD_LN_ID, T25.PR_RESP_ID, T17.PR_SMS_NUM_ID, T25.PR_SECURITY_ID, T5.NAME, T25.MED_SPEC_ID, T25.PR_STATE_LIC_ID, T25.PR_TERR_ID, T25.PROVIDER_FLG, T12.OWN_INST_ID, T12.INTEGRATION_ID, T11.SHARE_HOME_PH_FLG, T25.CUST_SINCE_DT, T25.SUPPRESS_MAIL_FLG, T23.ADDR, T23.CITY, T23.COUNTRY, T23.ZIPCODE, T23.STATE, T25.WORK_PH_NUM, T19.ROW_STATUS, T15.LOGIN, T21.NAME, T21.LOC, T21.PR_BL_ADDR_ID, T21.PR_BL_PER_ID, T24.PRIM_MARKET_CD, T21.PR_SHIP_ADDR_ID, T21.PR_SHIP_PER_ID, T2.ROW_ID, T21.OU_NUM, T2.ROW_ID, T21.PR_SRV_AGREE_ID,
(SPA)
测试
通过高质量测试满足业务敏捷性
部署
变更
补救
RAT的两项技术
• SPA(SQL级)
Database Replay(实例级)
– 标识SQL性能是衰退还是提升
– 从生产中捕获SQL,包括执行计划与统 计信息
– 在变更前与变更后依次测试执行这些 SQL
– 比较变更前后的SQL执行计划与性能统 计
Hours
10
9.25
8
6
3.57
4
2
0
Capture
Replay Baseline
Total Physical Write
GB
140
135.262
120
100
80
60
40
10.945
20
0
Capture
Replay Baseline
Total CPU Time
Seconds
35000 30000 25000 20000 15000 10000
1.使用SQL Plan Baseline调优此性能衰退SQL T25.PAR_ROW_ID, T17.ROW_ID,.LAST_UPD, T17.CONFLICT_ID, T17.PAR_ROW_ID, T11.ROW_ID, T11.PAR_ROW_ID, T11.MODIFICATION_NUM, T11. T17.PAR_ROW_ID, 2.再次回放负载 T17.MODIFICATION_NUM, T17.CREATED_BY, T17.LAST_UPD_BY, T17.CREATED, T17 CREATED_BY, T11.LAST_UPD_BY, T11.CREATED, T11.LAST_UPD, T11.CONFLICT_ID,
SPA可以用在:
➢ 任何可能影响SQL执行计划或性能的变更 ➢ 生产环境,和测试环境
SPA: 界面
新 工作流
SPA报告示例
3 2
5 1
4
SPA报告:性能衰退的SQL
DATABASE REPLAY
现今的测试
一两个测试者试图模拟上千个用户
PRODUCTION
TEST
Database Replay
• 分析&报告
– 捕获与回放报告 – AWR, ADDM, ASH, Replay Compare Period Reports
分析与报告
支持的变更
其他的变更 (Application testing)
支持的变更
•Database Upgrades, Patches •Schema, Parameters
SQL Performance Analyzer (SPA)
➢ 在变更部署到生产前主动检测所有SQL性能衰退 ➢ 为端到端SQL负载测试的集成方案
SPA概览
• 帮助用户预测系统变更对SQL语句响应时间的影 响
• 在生产系统上低开销地捕获SQL负载并生成SQL Tuning Set (STS)
• 通过测试执行构建不同的SQL语句执行试验环境
SQL Workload STS
SQL plans + stats 变更前试验
SQL plans + stats 变更后试验
• 分析性能差异
• 对每条SQL提供细粒度分析
• 与STS, SQL Plan Baselines, & SQL Tuning Advisor等集成,形成端到端解决方案
比较SQL性能 分析报告
Database Replay – 捕获的开销
• 性能开销
– 与实际负载有关 – 与客户端发送的数据有关 – TPC-C测试的吞吐量下降 4.5%
• 捕获的负载文件大小
– TPC-C 20min 100 users 10 warehouses: 1.2G – 可以捕获几分钟以评估大小
Database Replay工作流
SPA: 一般应用场景
• 数据库升级或补丁集
– 9.2/10.1 10.2 or 11g releases – 10.2.0.x 10.2.0.y or 11g releases
• 优化器统计刷新 • 数据库参数变更 • 数据库Schema变更(例如,增加或删除索引) • 优化建议实施 • I/O子系统变更(例如,ASM,Exadata)
T11.PAR_ROW_ID, T6.ROW_ID, T6.PAR_ROW_ID, T6.MODIFICATION_NUM, T6.CREATED_BY, T6.LAST_UPD_BY, T6.CREATED, T6.LAST_UPD, T6.CONFLICT_ID, T6.PAR_ROW_ID, T12.ROW_ID, T12.PAR_ROW_ID, T12.MODIFICATION_NUM, T12.CREATED_BY, T12.LAST_UPD_BY, T12.CREATED, T12.LAST_UPD, T12.CONFLICT_ID, T12.PAR_ROW_ID, T19.ROW_ID, T16.ROW_ID, T2.ROW_ID, T10.ROW_ID FROM ORAPERF.S_ORG_EXT T1, ORAPERF.S_PARTY T2, ORAPERF.S_PRI_LST T3, ORAPERF.S_DQ_CON_KEY T4, ORAPERF.S_MED_SPEC T5, ORAPERF.S_CONTACT_X T6, ORAPERF.S_POSTN T7, ORAPERF.S_POSTN T8, ORAPERF.S_PARTY T9, ORAPERF.S_PARTY T10, ORAPERF.S_EMP_PER T11, ORAPERF.S_CONTACT_SS T12, ORAPERF.S_USER T13, ORAPERF.S_USER T14, ORAPERF.S_USER T15, ORAPERF.S_PARTY T16, ORAPERF.S_CONTACT_LOYX T17, ORAPERF.S_USER T18, ORAPERF.S_POSTN_CON T19, ORAPERF.S_POSTN_CON T20, ORAPERF.S_ORG_EXT T21, ORAPERF.S_POSTN T22, ORAPERF.S_ADDR_PER T23, ORAPERF.S_ORG_EXT_FNX T24, ORAPERF.S_CONTACT T25 WHERE T25.PR_DEPT_OU_ID = T1.PAR_ROW_ID (+) AND T1.PR_POSTN_ID = T22.PAR_ROW_ID (+) AND T25.CURR_PRI_LST_ID = T3.ROW_ID (+) AND T25.PR_POSTN_ID = T8.PAR_ROW_ID (+) AND T9.ROW_ID = T20.CON_ID (+) AND T20.POSTN_ID (+) = :1 AND T22.PR_EMP_ID = T13.PAR_ROW_ID (+) AND T8.PR_EMP_ID = T18.PAR_ROW_ID (+) AND T25.PR_PER_ADDR_ID = T23.ROW_ID (+) AND T25.MED_SPEC_ID = T5.ROW_ID (+) AND T9.ROW_ID = T4.CONTACT_ID (+) AND T9.ROW_ID = T25.PAR_ROW_ID AND T9.ROW_ID = T17.PAR_ROW_ID (+) AND T9.ROW_ID = T11.PAR_ROW_ID (+) AND T9.ROW_ID = T6.PAR_ROW_ID (+) AND T9.ROW_ID = T12.PAR_ROW_ID (+) AND T19.POSTN_ID = :2 AND T25.ROW_ID = T19.CON_ID AND T16.ROW_ID = T19.POSTN_ID AND T19.POSTN_ID = T7.PAR_ROW_ID (+) AND T7.PR_EMP_ID = T15.PAR_ROW_ID (+) AND T25.PR_DEPT_OU_ID = T2.ROW_ID (+) AND T25.PR_DEPT_OU_ID = T21.PAR_ROW_ID (+) AND T25.PR_DEPT_OU_ID = T24.PAR_ROW_ID (+) AND T25.PR_SYNC_USER_ID = T10.ROW_ID (+) AND T25.PR_SYNC_USER_ID = T14.PAR_ROW_ID (+) AND ((T25.PRIV_FLG = 'N') AND (T19.CON_LAST_NAME >= :3)) AND (T9.ROW_ID IN ( SELECT SQ1_T1.PERSON_ID FROM ORAPERF.S_PARTY_PER SQ1_T1, ORAPERF.S_PARTY SQ1_T2, ORAPERF.S_ORG_EXT SQ1_T3 WHERE ( SQ1_T2.ROW_ID = SQ1_T3.PAR_ROW_ID AND SQ1_T1.PARTY_ID = SQ1_T2.ROW_ID) AND ((SQ1_T3.INT_ORG_FLG != 'Y' OR SQ1_T3.PRTNR_FLG != 'N') AND SQ1_T3.ACCNT_FLG != 'N') AND
玩转 Oracle EM12c
应用测试管理篇
唐晓华
Real Application Testing(RAT)
负载和SQL影响性测试方案,为数据库层提供最高质量的测试
• 收益
• 更快的部署与上线 • 更低的开销与风险
• 特征
• 数据库回放Database Replay • SQL性能分析SQL Performance Analyzer
示例:从9.2.0.8 升级到11g
从9.2.0.8捕获
在11g测试
Clients

Mid-Tier
Replay Driver* (No middle/cliBaidu Nhomakorabeant tier setup required)

存储
捕获
存储
处理
回放
分析 与报告
Database Replay:回放分析报告
回放区间比较: 10.2.0.4 Capture Vs 11.2.0.1 Replay Baseline