APP下载

Oracle数据库优化技术在技校学生考试系统中的应用

2015-05-30苏昭虎

环球市场信息导报 2015年8期
关键词:技校语句速率

苏昭虎

技术考试系统的需求分析

对技校现行课程考试业务进行详细了解,通过认真调查后得知,原有的人工操作在考试工作中占的比重较大,考试流程是这样的:教导处下发考试通知→老师出卷→安排考场→组织考前宣传以及公布考场地点→印刷试卷→正式考试→阅卷→出成绩→张榜公布成绩等。根据调查结果,得到考试工作的组织机构设置如图所示。

通过了解详细情况之后并结合现行考试模式,而确定本系统的业务流程如图1-2所示。

技校考试系统的功能结构设计

系统功能结构。根据需求分析可知,技校学生考试系统是由三大模块组成:后台管理模块、考试功能模块以及领导审核功能模块,如图2-1示。

数据库设计。在Oracle数据库服务器上建立名为exam的数据库。该考试系统包括的数据表有:考生信息表(XS),成绩表(CJ),学生档案表(DA),题库表(TK),班级表(BJ)等表,因编幅有限而略去。

Oracle数据库优化技术在考试系统中的应用

SQL语句的优化是作为Oracle数据库系统中最为重要的一个组成部分。随着考试系统数据库的日渐增大,系统最为突出的问题就是数据访问的响应速度。因此,这里对考试系统中的Oracle数据库查询技术进行优化是十分有必要的。

从上面的Oracle中的SQL语句我们能够发现学生考试记录查询语句中对SQL语法使用存在错误,而最终使得某些字段索引出现失效的现象,即and to_char(c.dt,'yyyy-mm')=to_char(sysdate,'yyyy-mm')这一句,因为索引列在函数中,那么索引将会失去原有的作用,这样的一种SQL语句错误的做法,使得在考试系统数据库建立时就被忽略掉了,其实这样的忽略会使访问速率造成较大的影响,那么我们可以改成这样:andc.dt=trunc(sysdat e.'yyyy-mm')and c.dt<=last_day(sysdate)。另一个语句a and b.id(题号)In(Select id From TK t With t.id=b.id Connect By t.id=Prior sj_b.id)中的in能够用exists来取代替,这样能够在很大程度上提高考生信息记录查询的速率,优化后完整的SQL语句是这样的:

考生成绩信息查询优化

select*from CJ a,DA b where a.id=b.sno order by sno,km

该语句主要是实现了考生各个科目成绩的查询和排序,由于技校考生人数较多,且每个考生又对应着多个考试科目。虽然SQL语句很简单,但是查询速度却是十分的慢。主要原因是由于这个语句中,有两个关联表中的两个字段都没有建立索引,从而使得查询速度十分的慢,如果对这些字段全面建立起索引,那么就能够全面有效地提高这个语句的查询速率。具体做法是:成绩表(cj)的科目字段km索引名为km_idx,档案表(DA)的学号sno的索引名为sno_idx。所以需要在Oracle数据库中创建两条索引来进行优化,下面通过两条语句来建立数据表的相应索引:CREATE INDEX km_idx ON Exam.CJ(km)

CREATE INDEX sno_idx ON Exam.DA(sno)

优化效果。通过对考生考试信息查询和考生成绩信息查询页面SQL语句的优化,以此来提高查询速度,下表3-1是优化前和优化后所用的时间:

表3-1 SQL优化前后的性能测试结果从图3-1中我们能够看出,学生考试系统的考试信息查询SQL语句优化理论对以上SQL语句进行了优化调整,SQL语句的查询速度得到了很大的提升。考生考试信息查询的速度平均提高了68.47%,考生成绩信息查询的速度平均提高了67.03%,从图中我们可以看出优化以后的查询速率确实有了明显的改善,且优化效果很好。

猜你喜欢

技校语句速率
重点:语句衔接
不同冷却速率下低压转子钢30Cr2Ni4MoV的凝固组织
莲心超微粉碎提高有效成分的溶出速率
如何搞定语句衔接题
浅议技校学生语文素养的培养
新形势下技校计算机专业人才培养探讨
技校图书管理信息化建设方案探究
浅谈技校的师生关系
作文语句实录