- 浏览: 73428 次
- 性别:
- 来自: 上海
文章分类
最新评论
http://blog.csai.cn/user1/16350/archives/2009/36012.html
在对业务系统进行可用性测试以及性能测试时,往往需要在后台数据库中生成大量的测试数据,如何快速的生成所需要的数据?这里给出几种不同的解决方法,并对各自的使用场合进行大致的比较。
一:使用存储过程
在这种方法中,需要对后台数据库的表结构有相当的了解,比如表之间的参照关系,表的自增长主健如何实现的,表中的特殊字段的代码如何产生等等。在熟悉表结构的基础上编写存储过程产生数据,当然对于复杂的数据结构可以编写一系列的存储过程去分别产生各个表的数据,然后由一个总的存储过程控制。
该方法的适用场合:对数据库结构非常熟悉,并且熟悉相应的存储过程编写。
优点是:在数据库中执行,效率比较高。
缺点是:需要花大量的时间在存储过程的调试上,而且为了可以并行执行存储过程需要做一些特殊的设计。
二:使用批量测试工具
这里可以首先使用测试工具如WinRunner,Quality Test Center等录制运行脚本,然后多次运行这些运行脚本,通过应用程序的反复运行在后台数据库中产生业务数据。
该方法的使用场合:不熟悉后台数据库结构,业务数据量需求不是很大。
优点是:测试脚本录制一遍,可以分步在不同的机器上反复运行。
缺点是:如果应用程序中对重复输入数据进行了屏蔽,则会导致脚本重复运行的失败。
三:使用工具批量生成Insert脚本
这里可以使用PowerDesigner等工具,首先从数据库中Reverse Engineering出来数据库的Schema,然后设置测试数据所需要的Profile,以及各个表所需要的测试数据量,再生成Insert脚本,最后通过数据库的命令行程序执行这个SQL脚本将数据Insert到数据库中。对于不同的数据库命令行程序不同,比如对MS SQL Server是osql,对Sybase ASE是isql,对Oracle是sqlplus等。
该方法的使用场合:对数据库结构不熟悉,同时需要产生大量业务数据(如千万级)。
优点是:做了相应设置之后,Insert脚本自动生成。
缺点是:对于千万级的测试数据可能要分成若干个SQL脚本,分别产生,并行运行。对Oracle之类的数据库尤其要考虑时间日期以及时间戳类型的字段的值得处理问题。
以上对如何生成大批量数据的常用方法作了大致的对比介绍,当然还有其它一些通用的问题需要考虑,如为了提高数据生成效率,生成测试数据的时候是否首先删掉大表的索引,以及可能影响数据插入数据的trigger,数据生成完了之后再重新generate到数据库中等问题。
总之,我们可以结合各种不同的场合,选择一种方便,高效,快速的数据生成方法,以便提高性能测试和可用性测试的执行效率。
在对业务系统进行可用性测试以及性能测试时,往往需要在后台数据库中生成大量的测试数据,如何快速的生成所需要的数据?这里给出几种不同的解决方法,并对各自的使用场合进行大致的比较。
一:使用存储过程
在这种方法中,需要对后台数据库的表结构有相当的了解,比如表之间的参照关系,表的自增长主健如何实现的,表中的特殊字段的代码如何产生等等。在熟悉表结构的基础上编写存储过程产生数据,当然对于复杂的数据结构可以编写一系列的存储过程去分别产生各个表的数据,然后由一个总的存储过程控制。
该方法的适用场合:对数据库结构非常熟悉,并且熟悉相应的存储过程编写。
优点是:在数据库中执行,效率比较高。
缺点是:需要花大量的时间在存储过程的调试上,而且为了可以并行执行存储过程需要做一些特殊的设计。
二:使用批量测试工具
这里可以首先使用测试工具如WinRunner,Quality Test Center等录制运行脚本,然后多次运行这些运行脚本,通过应用程序的反复运行在后台数据库中产生业务数据。
该方法的使用场合:不熟悉后台数据库结构,业务数据量需求不是很大。
优点是:测试脚本录制一遍,可以分步在不同的机器上反复运行。
缺点是:如果应用程序中对重复输入数据进行了屏蔽,则会导致脚本重复运行的失败。
三:使用工具批量生成Insert脚本
这里可以使用PowerDesigner等工具,首先从数据库中Reverse Engineering出来数据库的Schema,然后设置测试数据所需要的Profile,以及各个表所需要的测试数据量,再生成Insert脚本,最后通过数据库的命令行程序执行这个SQL脚本将数据Insert到数据库中。对于不同的数据库命令行程序不同,比如对MS SQL Server是osql,对Sybase ASE是isql,对Oracle是sqlplus等。
该方法的使用场合:对数据库结构不熟悉,同时需要产生大量业务数据(如千万级)。
优点是:做了相应设置之后,Insert脚本自动生成。
缺点是:对于千万级的测试数据可能要分成若干个SQL脚本,分别产生,并行运行。对Oracle之类的数据库尤其要考虑时间日期以及时间戳类型的字段的值得处理问题。
以上对如何生成大批量数据的常用方法作了大致的对比介绍,当然还有其它一些通用的问题需要考虑,如为了提高数据生成效率,生成测试数据的时候是否首先删掉大表的索引,以及可能影响数据插入数据的trigger,数据生成完了之后再重新generate到数据库中等问题。
总之,我们可以结合各种不同的场合,选择一种方便,高效,快速的数据生成方法,以便提高性能测试和可用性测试的执行效率。
发表评论
-
数据库中使用自增量字段与Guid字段作主键的性能对比
2010-07-13 11:06 1054http://www.cnblogs.com/houleixx ... -
MySQL: MyISAM和InnoDB的区别
2010-07-12 15:58 822InnoDB和MyISAM是在使用MySQL最常用的两个表类型 ... -
利用frofile找新能瓶颈【转】
2010-07-12 15:54 952转自http://www.yqshare.com/mysql- ... -
查看mysql的一些小命令
2010-07-12 15:31 725mysql> \s查看版本信息 -
mysql性能跟踪器
2010-07-12 15:24 920MYSQL5.0家族提供的性能跟踪器确实很爽。 要注意两点。 ... -
MySQL数据库优化脚本Tuning-primer.sh
2010-07-12 15:14 1697很好用的mysql数据库优化脚本,相对mysqltuner.p ... -
mysql在linux下的my.cnf文件在哪里!
2010-07-12 14:01 2183用rpm包安装的MySQL是不会安装/etc/my.cnf文件 ... -
MySQL密码丢失的找回方法(win/*inx)
2010-07-12 11:43 752破解本地密码: Windows: 1.用系统管理员登陆系统。 ... -
SELECT COUNT使用优化
2010-07-12 11:38 1483SQL 语句的COUNT有两种用途 1. 用来计算行数——Co ... -
MySQL数据的导出和导入工具
2010-07-12 11:11 608导出要用到MySQL的mysqldump工具,基本用法是: ... -
MySQL慢查询分析mysqldumpslow
2010-07-12 11:08 1685一直以来积累了很多对MySQL优化的心得和经验,计划通过写日志 ... -
打开MySQL的慢查询记录
2010-07-12 11:02 697转自http://www.ccvita.com/326.htm ... -
查看MySQL运行状况
2010-07-12 10:48 793列举了几种查看MySQL运行状况的方法,总结一下。 转自htt ... -
什么是mysql的慢查询
2010-07-12 10:31 1372MySQL有一个功能就是可以log下来运行的比较慢的sql语句 ... -
用MYSQLADMIN改用户密码
2010-07-12 09:55 967转自http://yueliangdao0608.blog.5 ... -
Mysql数据导入导出命令
2010-07-07 11:09 719many of us may only need to use ...
相关推荐
该脚本仅能生成约1千条不到的不重复企业名称,由于测试需要约1000万不重复的企业名称,故对该脚本进行重新修改,修改后的Faker在Python版本3.7,使用datafaker执行导入mysql数据库生成1000万测试数据约2w重复,重复...
总结来说,快速创建千万级测试数据的关键在于选择合适的数据生成方法和插入策略。存储过程、内存表和自定义函数的结合使用,能够有效地提高数据生成的效率,满足大规模测试数据的需求。同时,避免使用性能低下的函数...
### 实现千万级数据的分页显示 在处理大规模数据集时,如何高效地进行分页显示成为了一个关键的技术挑战。传统的分页方法在面对数百万甚至上千万的数据记录时,往往会出现性能瓶颈,导致用户体验下降。本文将详细...
可以参考往期文章,有具体的算法思路,到算法伪代码实现,到复杂度分析,在进行学习后,可以搭建此类测试平台,其中可以根据自己的需求添加后续的代码,其中这个平台可以完你自身硬对算法从1000,到千万级测试,其中...
- "生成亿级随机数据.ktr":这是Kettle的转换文件(Transformation),直接执行数据生成的任务。它包含一系列步骤,如生成随机数、组合字段等,最终形成一亿条完整的信用卡号数据。 - "垃圾回收.ktr":这个转换可能...
在IT行业中,大数据处理是一项关键任务,特别是在数据分析、报表生成以及数据导出等场景下。当我们面临千万级别的数据量时,传统的Excel处理方式可能会遇到性能瓶颈,甚至导致内存溢出。这时,`EasyExcel`这样的工具...
然而,当面对千万级甚至更大规模的数据时,传统的Excel导出方式会面临诸多挑战,如文件大小限制、性能瓶颈等。针对这一问题,"海量千万级Excel导出源码-自动分sheet"提供了一种解决方案。 首先,我们要理解为什么...
在MySQL数据库管理中,优化大型数据表以提升性能至关重要,特别是面对千万级的数据量。以下是一些关键的数据库优化策略: 1. **索引优化**:避免全表扫描是首要原则,应该在`WHERE`子句和`ORDER BY`涉及的列上创建...
【标题】与【描述】提及的是一个名为"打造千万级流量秒杀系统"的视频课程资源,这通常是一门关于构建高并发、高流量的在线秒杀系统的教学内容。秒杀系统是电商、互联网行业中常见的一种促销手段,通过短时间内大量...
在秒杀场景下,JMeter可以用来模拟大量用户同时发起秒杀请求,以此测试系统的吞吐量、响应时间和稳定性,确保在每秒千万级并发下系统仍能正常运行。 6. **系统优化**:为了应对高并发,系统通常会进行一系列优化,...
自动化测试平台的建设包括了多方面的工作,比如测试需求的捕获、测试用例的设计、测试数据的准备、测试执行过程的自动化、测试结果的分析和生成报告等。自动化测试平台的设计和实施需要考虑以下几个因素: - 集成性...
6. **每秒千万级并发**: 要实现每秒处理千万级别的并发请求,系统需要有良好的设计和优化,包括但不限于合理的数据库索引、数据缓存策略、异步处理机制以及负载均衡等。此外,服务器硬件配置、网络带宽等也是关键...
在处理几百万甚至几千万级别的数据时,快速排序能够提供比其他线性时间复杂度的排序算法更高的性能。 去重则是另一个关键步骤,特别是在处理大量文本数据时,确保数据唯一性是非常重要的。常见的去重方法有哈希表、...
iweb Shop基于iweb SI框架开发,在获得iweb SI技术平台库支持的条件下,iweb Shop可以轻松满足用户量级百万至千万级的大型电子商务网站的性能要求。站点的集群与分布式技术(分布式计算与存储/高可用性/负载均衡)被...
根据不同的测试对象和测试方法,软件测试工具可以分为白盒测试工具、黑盒测试工具、性能测试工具和测试管理工具等。 白盒测试工具是指对代码进行测试的工具,它可以分为静态测试工具和动态测试工具。静态测试工具是...
这种方法减少了归档日志的生成,加快了插入速度,但不适合在启用强制日志记录(FORCE LOGGING)的Data Guard环境中使用,因为这可能导致数据丢失风险。 2. 并行DML(Parallel DML): ```sql ALTER SESSION ENABLE ...
总之,PLSQL Developer是Oracle数据库开发者不可或缺的利器,它提供了从编码、测试到维护的全套解决方案,大大简化了数据库管理工作,提高了开发效率。对于任何需要处理Oracle数据库的个人或团队,这款工具都值得...
测试数据的总大小约为37GB,加载到内存后占用约32GB。在内存充足的情况下,硬盘IO性能的影响变得次要,因为它主要影响非热点数据加载到内存的速度。 为了生成压力测试,使用了Python脚本`mselectmongodb.py`,它...