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

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

ID:38806667

大小:161.50 KB

页数:5页

时间:2019-06-19

浅谈存储过程在性能测试中的应用_第1页
浅谈存储过程在性能测试中的应用_第2页
浅谈存储过程在性能测试中的应用_第3页
浅谈存储过程在性能测试中的应用_第4页
浅谈存储过程在性能测试中的应用_第5页
资源描述:

《浅谈存储过程在性能测试中的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、浅谈存储过程在性能测试中的应用Ⅰ.背景介绍:在信息化时代的今天,信息管理软件日益发展强大。随着数据量的激增,人们对于软件的性能越来越关注。性能测试变得越来越重要。负载和数据容量测试是重要的性能测试类型。如何快速创建大量的有效数据成为性能测试的前提条件。在本文中,我们结合oracle数据库介绍一种快速插入数据的方法,即存储过程构造数据法。这种方法应用方便,直接在数据库端编写和运行代码,方便调试和维护,为性能测试创造有利的数据条件。Ⅱ.存储过程的定义:存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数

2、)来执行它。存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量。同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。在oracle中,复杂的应用规则和业务可以作为过程存储。存储过程是一组sql和pl/sql语句,它允许我们把加强的业务规则从应用移动到数据库中。存储过程允许被重复使用,使用存储过程大大提高数据的访问效率和提升应用系统的性能。Ⅲ.存储过程使用前提:为了创建一个过程对象,必须拥有创建procedure的系统权限。

3、如果此过程对象在另一个用户的领域中,则必须拥有createanyprocedure的权限。因为存储过程与数据库的表关联,所以过程的所有者必须对表有操作权限,而执行这些过程对象的用户并不需要在所给予的表上拥有特权,仅需要excute权限即可。Ⅳ.存储过程应用于性能测试实例:某系统为该市中考考生成绩查询系统。该市共有将近10万名考生,要求在查询成绩显示时间不大于5秒。1.下面是基本的性能测试流程:来看“数据准备”这一过程,根据这一需求进行性能测试。要模拟10万名考生,显然通过系统逐条录入数据不太现实。这里通过存储过程将很轻松的解决这个问题。2.

4、分析数据库中相关的表结构:在插入有关联关系的表的数据时,首先要理清表之间的关联。从上图关联关系中可以看出:(1)首先构造学生基本表的数据,学生ID是主键,这里引用序列作为ID;(2)构造考试科目表的数据,科目ID是主键,引用科目序列作为ID;(3)构造成绩表的数据,成绩表引用学生表的ID和科目表ID作为成绩表的外键,这里运用游标来实现;3.编写脚本过程:⑴创建序列:①创建学生表序列供引用:Createsequencestudent_seqMinvalue1Maxvalue1000000Startwith1Increamentby1Nocac

5、he;②创建科目表序列供引用:Createsequencesubject_seqMinvalue1Maxvalue10000Startwith1Increamentby1Nocache;⑵用存储过程依次创建学生基本信息表、科目表、成绩表的数据:①创建学生表数据:createorreplaceprocedurepro_studentisStudentidvarchar2(20);Studentnamevarchar2(20);Studentsexvarchar2(20);Studentagevarchar2(20);Studentschool

6、varchar2(100);Txtsqlvarchar2(1000);Layer1number;BeginForlayer1in1..100000loopTxtsql:=‘insertintostudent(student_id,student_name,student_sex,student_age,student_school)values(’;Selectstudent_seq.nextvalintostudentidfromdual;Studentname:=‘,‘‘STU_‘

7、

8、studentid

9、

10、’’’’;Studentsex

11、:=‘,‘‘女’’’;Studentage:=‘,‘‘14’’’;Studentschool:=‘,‘‘育民中学’’)’;Txtsql:=txtsql

12、

13、studentid

14、

15、studentname

16、

17、studentsex

18、

19、studentage

20、

21、studentschool;Excuteimmediatetxtsql;Commit;Endloop;Endpro_student;②创建科目表数据:createorreplaceprocedurepro_subjectisSubjectidvarchar2(20);Subjectnamevar

22、char2(20);Txtsqlvarchar2(1000);Layer2number;BeginForlayer2in1..10loopTxtsql:=‘insertintos

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。