background image

软件开发中如何高效使用数据库

 摘

 要 数据库系统负责应用软件系统中的数据处理和存储,随着系统规模扩大,数据库系

统成为系统性能的一个瓶颈。本文结合

Oracle 数据库,从数据处理过程进行分析,重点阐

述应用软件中如何编写高效的

SQL 语句。

  关键词

 Oracle 数据库; 优化; 批处理; 软解析; 索引

  通常一个应用软件系统中涉及网络系统、计算机系统、应用软件系统以及数据库系统。这
些系统需要高效、协调一致地工作,方能给客户提供良好的服务,客户对系统的满意度很大
程度上取决于客户的体验,包括系统界面友好、简单易用、健壮可靠、安全高效等。
  当系统在并发量不高的情况下,上述的用户体验大都可以满足,但当并发量持续增加
时,系统整体性能逐渐走低,数据库系统将成为主要的性能瓶颈。
  当前系统硬件水平发展很快,

CPU 运算速度、内存速度容量、网络速度等都在大幅度提

高,通过更换硬件设备提高性能无疑是一种解决办法,但系统内部问题却容易被忽视,系
统性能问题很多来自于系统设计本身。
  

1 应用软件中数据库系统操作响应时间分析

  当前的主流应用软件体系结构为

B/S 结构,客户在浏览器中进行一项操作,信息的传

递过程是:
  

1)提交请求到应用服务器;

  

2)应用服务器接收并处理信息;

  

3)应用服务器访问数据库系统;

  

4)数据库系统处理数据;

  

5)数据库系统返回处理结果给应用服务器;

  

6)应用服务器处理返回结果;

  

7)应用服务器将最终显示信息传递到浏览器。

  客户执行操作的内部处理参见图

1 所示。

  客户执行一项操作的响应时间是上述

7 个步骤的执行时间之和,其中 4 部分是网络传

输时间,

2 部分是应用服务器处理时间,1 部分是数据库处理时间。

  在这几个部分中真正与数据库系统相关的操作时间是应用服务器与数据库系统间的网
络传输时间和数据库系统内部的处理时间。
  

2 数据库系统操作响应时间优化措施

  根据上述分析得知数据库系统响应时间主要集中在网络传输和数据库系统内部处理时
间,针对这两种情况我们分别具体分析。
  

2.1 通过批处理方式优化网络传输时间

  应用服务器和数据库系统之间的数据传输时间取决于传输的数据量和次数,对于定量
的数据,传输的次数将主要决定传输需要的总时间。
  一次数据传输包括发送端准备数据时间、数据在网络中传输时间、接收端接收数据时间、
接收端返回响应数据在网络中传输时间。
  例如向数据库表中连续插入

10 000 条记录,两种选择,第一种逐条插入,第二种批量

插入,以下是在

Oracle10g 版本中测试的跟踪信息,图 2 是逐条插入时的跟踪信息,图 3 是

1 000 条插入一次的跟踪信息。

  图

2 显示在网络中传输数据时等待次数累计 20 000 次、累计时间 3.12 秒,图 3 显示等

待次数累计

20 次、累计时间 0.04 秒,可见批处理方式可显著降低网络传输所消耗的时间。

  数据库的批处理不仅可用于向数据库中存储数据,也可以用于从数据中读取数据,图