软件测试 第九讲 数据库测试

上传人:ji****72 文档编号:51721723 上传时间:2018-08-16 格式:PPT 页数:19 大小:584.50KB
返回 下载 相关 举报
软件测试 第九讲 数据库测试_第1页
第1页 / 共19页
软件测试 第九讲 数据库测试_第2页
第2页 / 共19页
软件测试 第九讲 数据库测试_第3页
第3页 / 共19页
软件测试 第九讲 数据库测试_第4页
第4页 / 共19页
软件测试 第九讲 数据库测试_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《软件测试 第九讲 数据库测试》由会员分享,可在线阅读,更多相关《软件测试 第九讲 数据库测试(19页珍藏版)》请在金锄头文库上搜索。

1、软件测试数据库测试基于数据库服务器的测试 数据库服务器的组成 DBMS 常用的数据库服务器平台Oracle故障诊断为了分析故障位置,将故障诊断数据(Oracle Diagnostics)与交易执行响应时间( Transaction Response Time)数据关联起来。 例如:某交易 “enter”的平均响应时间高,使 用故障诊断(Oracle diagnostics),就可以查 找到是什么原因导致了这个问题。 Oracle故障诊断利用故障诊断的方法(Oracle DB Side Transactions by SQL Stage)可以将SQL语句执 行过程中的时间划分为四部分: 解析时间

2、(Parse Time) 执行时间(Execute Time) 读取时间(Fetch Time) 其他时间(Other Time),例如绑定时间( bind time)。 Oracle故障诊断 SQL执行时间分解数据库服务器典型性能问题 数据库服务器性能问题及原因分析 单一类型事务响应时间过长 数据库服务器负载 糟糕的数据库设计 事务粒度过大 批任务对普通用户性能的影响 并发处理能力差 锁冲突严重 资源锁定造成的数据库事务超时 数据库死锁 数据库服务器典型性能问题数据库性能问题的一般解决办法 监视性能相关数据; 定位资源占用较大的事务并做出必要的优 化或调整; 定位锁冲突,修改锁冲突发生严重的

3、应用 逻辑; 对规模较大的数据或者无法通过一般优化 解决的锁冲突进行分布。Oracle与提高性能有关的特性 索引 并行执行 簇与散列簇 分区 多线程服务器 同时读取多块数据 Oracle配置的关键参数 MAX_DSPATCHERS:这个参数指定了系统允许 同时进行的调度进程的最大数量。 MAX_SHARED_SERVERS:这个参数指定了系 统允许同时进行的共享服务器进程的最大数量。 如果系统中出现的人为死锁过于频繁,那么管理 员应该增大这个参数的值。 PARALLEL_ADAPTIVE_MULTI_USER:当这个 参数的值为TRUE时,系统将启动一个能提高使用 并行执行的多用户系统性能的自

4、适应算法。这个 算法将根据查询开始时的系统负载自动降低查询 请求的并行度。Oracle配置的关键参数 PARLLEL_MIN_SERVERS:这个参数指定了实例并行 执行进程的最小数量。其值就是实例启动时Oracle创建 的并行执行进程数。 PARLLEL_THREADS_PER_CPU:这个参数指定了实 例默认的并行度和并行自适应以及负载平衡算法。它指 明了并行执行过程中一个CPU能处理的进程或线程数。 PARTITION_VIEW_ENABLED:这个参数指定了优化器 是否使用分区视图。Oracle推荐用户使用分区表(这是 在Oracle8之后引入的)而不是分区视图。分区视图只是 为了提供

5、Oracle的后向兼容性。 REVOVERY_PARALLELISM:这个参数指定了恢复数 据库系统时使用的进程数。 Oracle数据库性能测试 Oracle系统性能测试的目标: 模拟数据库系统的数据负载,操作,侦测和 获取性能测试数据, 帮助开发和DBA来优化和调 整数据库或者应用程序. 最终的结果是获取更快的数据库响应速度 或者更高吞度能力. Oracle系统性能测试的本质 硬件 (CPU, Memory, I/O竞争等) 系统配置 (SGA/PGA) 应用程序(SQL, PL-SQL) 网络连接Oralce系统性能测试的范围应用程序调优-For Application developer

6、 SQL语句测试调优 Thin, OCI测试 Schema 对象调优-For Database developer Schema(表,索引,存储过程)设计 PL-SQL语句和调用 数据复制 系统参数调优-For DBA 内存/CPU/I/O竞争/网络 SGA配置 动态表空间估计 分区表,索引设计数据库性能测试 大数据量测试 大容量测试 性能测试过程和策略 理解测试需求: 是校验测试还是基准测试? 是单个用户大数据量测试还是多个用户并发 测试? 什么地方是可能的性能瓶颈? 可能是哪个方面的性能测试? (应用程序or系 统参数or Schema对象) 选择测试工具 页面级的辅助测试工具: JMet

7、er, Webload etc 第三方监控程序: 如DB Flash, 或者有些通过 log文件, 来监控动态的访问路径, 高占用的进程,会话和 SQL语句基于数据库服务器的测试自定义或者常用的命令, 来动态监控和获取执行 SQL, PL-SQL所需要的时间, 占用的CPU和内存资源. 数据库系统本身的性能工具包, 如在Oracle中使用 的Explain Plan, AutoTrace, PKPROF以及Statspack. 设计测试场景以及测试脚本 数据量设计或加载. 测试环境建立和测试过程分析 测试脚本设计 收集数据和分析结果 性能瓶颈参数 优化和对比数据库测试工具 - AUTOTRAC

8、Ecommand: set autotrace ontraceonlyoff; SQL select * from wbxsite;3091 rows selected.Execution Plan -0 SELECT STATEMENT Optimizer=CHOOSE (Cost=4 Card=2489 Bytes=174230)1 0 TABLE ACCESS (FULL) OF WBXSITE (Cost=4 Card=2489 Bytes=174230)Statistics -680 recursive calls0 db block gets375 consistent gets0

9、 physical reads0 redo size196696 bytes sent via SQL*Net to client2765 bytes received via SQL*Net from client208 SQL*Net roundtrips to/from client6 sorts (memory)0 sorts (disk)3091 rows processedSQL / -the data was from buffer cache, but not hard parse.3091 rows selected.Execution Plan -0 SELECT STAT

10、EMENT Optimizer=CHOOSE (Cost=4 Card=2489 Bytes=174230)1 0 TABLE ACCESS (FULL) OF WBXSITE (Cost=4 Card=2489 Bytes=174230)Statistics -0 recursive calls0 db block gets245 consistent gets0 physical reads0 redo size196696 bytes sent via SQL*Net to client2765 bytes received via SQL*Net from client208 SQL*

11、Net roundtrips to/from client0 sorts (memory)0 sorts (disk)3091 rows processedSQL 数据库测试工具 - AUTOTRACEEXPLAIN PLAN Running explain plan and show output: Explain plan forStatement; ?/rdbms/admin/utlxpls.sql - Shows plan table output for serial processing ?/rdbms/admin/utlxplp.sql - Shows plan table ou

12、tput with parallel execution columnsAnalyze plan Optimizer mode Scan mode Recursive calls Redo sizes数据库测试工具 (Contd)数据库测试工具 (Contd)Statspack Install package Connect as sysdba Run ?/rdbms/admin/spcreate sql, to create all required tables, packages, user and grant privilege. Specify 3 required paramete

13、rs: user password, tablespace and temp tablespace, it is better to create independent tablespace and temp tablespace for this schema. Using statspack connect as perfstats. EXECUTE statspack.snap; (after this process finished, we can see a set of data had been generated to perfstats. STATS$SYSSTAT, b

14、y SNAP_IDm this means, system snapshot had been generated by executing this package. An integer snap_id will be returned, we can get it by SMART calling, or from latest SNAP_ID from table STATS$SYSSTAT. Running the Statspack Report connect as perfstats. Execute sql: ?/rdbms/admin/spreport Specify 3 parameters: start snapshot ID, end snapshot ID and report name (default is sp_xx_yy.lis in current path). Or batch define and run by define begine_snap, end_snap, report_name before run sql.数据库并发控制测试 数据库并发能力: 多个应用请求的并发 处理过程. 并发主要考虑的几个方面:数据丢失 不可重复数据 读脏数据 数据库的锁 并发测试的设计过程 并发流程分析 并发控制测试设计

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号