浅谈存储过程在性能测试中的应用.doc

浅谈存储过程在性能测试中的应用.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅谈存储过程在性能测试中的应用

浅谈存储过程在性能测试中的应用 Ⅰ.背景介绍: 在信息化时代的今天,信息管理软件日益发展强大。随着数据量的激增,人们对于软件的性能越来越关注。性能测试变得越来越重要。负载和数据容量测试是重要的性能测试类型。如何快速创建大量的有效数据成为性能测试的前提条件。在本文中,我们结合oracle数据库介绍一种快速插入数据的方法,即存储过程构造数据法。这种方法应用方便,直接在数据库端编写和运行代码,方便调试和维护,为性能测试创造有利的数据条件。 Ⅱ.存储过程的定义: 存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量 。同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。 来看“数据准备”这一过程,根据这一需求进行性能测试。要模拟10万名考生,显然通过系统逐条录入数据不太现实。这里通过存储过程将很轻松的解决这个问题。 2. 分析数据库中相关的表结构: 在插入有关联关系的表的数据时,首先要理清表之间的关联。从上图关联关系中可以看出: (1)首先构造学生基本表的数据,学生ID是主键,这里引用序列作为ID; (2)构造考试科目表的数据,科目ID是主键,引用科目序列作为ID; (3)构造成绩表的数据,成绩表引用学生表的ID和科目表ID作为成绩表的外键,这里运用游标来实现; 3. 编写脚本过程: ⑴ 创建序列: ① 创建学生表序列供引用: Create sequence student_seq Minvalue 1 Maxvalue 1000000 Start with 1 Increament by 1 Nocache; ② 创建科目表序列供引用: Create sequence subject_seq Minvalue 1 Maxvalue 10000 Start with 1 Increament by 1 Nocache; ⑵ 用存储过程依次创建学生基本信息表、科目表、成绩表的数据: ① 创建学生表数据: create or replace procedure pro_student is Studentid varchar2(20); Studentname varchar2(20); Studentsex varchar2(20); Studentage varchar2(20); Studentschool varchar2(100); Txtsql varchar2(1000); Layer1 number; Begin For layer1 in 1..100000 loop Txtsql := ‘insert into student ( student_id,student_name,student_sex,student_age,student_school ) values (’; Select student_seq.nextval into studentid from dual; Studentname := ‘,‘‘STU_‘||studentid||’’’’; Studentsex := ‘,‘‘女’’’; Studentage := ‘,‘‘14’’’; Studentschool := ‘,‘‘育民中学’’) ’; Txtsql := txtsql || studentid || studentname || studentsex || studentage || studentschool; Excute immediate txtsql; Commit; End loop; End pro_student; ② 创建科目表数据: create or replace procedure pro_subject is Subjectid varchar2(20); Subjectname varchar2(20); Txtsql varchar2(1000); Layer2 number; Begin For layer2 in 1..10 loop Txtsql := ‘insert into subject ( subject_id,subject_name) values (’; Select subject_seq.nextval into subjecid from dual; Subjectname := ‘,‘‘SUB_‘||subjectid||’’’)’; Txtsql := txtsql || subjectid || subjectname; Excute i

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档