学习啦>论文大全>学科论文>计算机论文>

数据库应用论文(2)

时间: 坚烘964 分享

  数据库应用论文篇二

  《数据库应用系统性能优化研究与实践》

  摘要:本文主要从数据库服务器内存参数调整,SQL语句优化两方面论述如何在系统设计,运行过程中对Oracle数据库进行性能优化。数据库服务器内存参数调整主要论述共享池的大小设置问题,SQL语句优化主要从Oracle解析SQL语句的机制方面来论述如何写出高效的SQL语句。通过上述方面的调优以确保数据库系统的性能。

  关键词:数据库性能优化 逆规范化设计 优化策略

  中图分类号:TP311.13 文献标识码:A 文章编号:1007-9416(2012)07-0058-01

  1、对数据库服务器内存分配的调整

  由于对服务器内存参数的调整对oracle的性能影响显著,它成为Oracle数据库性能调优的首选对象。服务器内存参数的调整主要是对数据库系统全局区的调整,系统全局区包括共享池、数据缓冲区、日志缓冲区。其中最主要的是对数据缓冲区和共享池的参数调整。

  数据库缓冲区的作用主要是将从磁盘中读取的数据块存放在内存缓存中,从这个意义上说数据库缓冲区越大,存放的共享数据就越多,减少了对磁盘数据的物理读操作,也就提高了系统的响应速度。

  共享池的作用主要是用来存放最近使用过的sql语句的,它由一个最近最少使用的算法来管理,由库高速缓存和数据字典缓冲区两部分组成。修改这一参数的设置,能提高系统性能,是由Oracle数据库系统处理用户提交的SQL语句的步骤决定的。

  2、Sql优化

  由于应用程序的执行最终归结为后台数据库中SQL语句的执行,SQL语句本身的执行效率就成为了影响oracle数据库执行效率的一个重要因素,当我们对Oracle处理SQL语句的机制有所了解,通过对SQL语句进行适当的调整,就能提高Oracle数据库系统的性能。

  (1)在基于规则的优化器中,Oracle对from子句中的表名是按照从右到左的顺序进行解析的,即:From子句中排在最后的表会被首先处理。我们把这张表称做驱动表。当from字句中包含多个标的情况下,oracle是通过排序合并的方式连接这些表的,为了提高oracle的执行效率,应当选择包含记录条数少的表作为驱动表,即放在from子句的最后。

  (2)在oracle语句中,where子句的执行顺序是自下而上的对语句进行解析的。为了提高sql语句的执行效率,应该将能过滤掉大量数据的条件写在where子句的最后。

  (3)在selcect语句中使用*虽然对编程人员简单方便,oracle会自动列出所有列名,但oracle解析*时则是通过查询数据字典来完成对*的转换的,这样耗费了更多的时间用来查询数据字典,转换,必然降低执行效率,因此在selcect语句中应当直接列出所有的列名。

  (4)用where子句代替having子句,在where子句中排除不需要的记录,这样的执行效率将远远高于执行完成之后用having子句对记录进行筛选。

  3、软件开发模式优化策略

  3.1 避免访问回滚段

  如果查询数据库时,要访问的数据正被另外用户修改,数据库为了维护读一致性,需要访问会滚段来读取查询语句执行时刻的数据值。如果应用程序需要经常读取正在被其它用户修改的数据,数据库系统为了得到一个数据,不得不多次访问磁盘。数据库管理员可通过配置回滚段来减少查询时“snapshot tooold”错误的发生。解决这个问题的根本方法还是需要重新修改应用程序设计,合理对事务进行划分。

  3.2 表的分区和并行技术

  如果必须要在数据库运行特别耗时的操作。应尽量地把这样的操作分解,严格限制操作所涉及的记录数,并设法使操作并行,充分地提高执行效率。

  (1)使用分区。分区技术有两个潜在的好处:提高查询性能和提高数据库可用性。数据库查询时,优化器知道那些分区包含查询所要的数据。而其它分区数据将不会被读取,从而查询任务将更快完成。许多管理工作可在只一个分区上进行,而不影响其它分区的数据。例如可以选择只删除一个表分区中的数据。

  (2)使用并行。Oracle数据库中几乎所有的操作都支持并行特性,包括查询、插入、和数据加载。并行选项可以使多个处理器同时处理一条命令,在创建库数据库对象时可以设定并行参数,也可在查询语句中重新设。

  4、软件测试优化策略

  许多情况下由于开发进度等原因,软件性能压力测试都进行的不充分。这就导致软件产品交付时,不能确保软件性能满足用户需求。这点常常被开发人员忽视。用户不仅需要软件能完成一定功能,更需要软件能支撑自己业务的运行。因此应用软件性能不能满足业务处理的速度要求,软件系统就需要优化。测试必须验证软件性能能否在希望负载情况下,满足业务处理的速度要求。

  (1)用大量的数据进行测试。系统使用一段时间后,数据库的性能会发生变化。例如oracle数据库一个表的pctfree和pctused参数设置可能会使数据块只有一半的空间被利用或使数据库记录链接(chained)。上面的情形都会引起数据库性能问题,且只有在应用程序使用了一段时间后才能被发现。

  (2)足够多的用户并发测试。只有一个测试用户大多数情况下不能反映软件真实使用情况下的负载情况。我们必须测试在多个并发用户情况下是否会引起死锁(deadlock)以及性能下降等问题。

  5、结语

  数据库应用系统的性能优化远不是按照厂家所列的有关指南通过短短的几步就可以达到的。要想获得最大的优化效果,既需要具有广泛而深人的数据库原理和系统实践知识,又要有扎实的应用程序设计能力,同时要充分熟悉操作系统和有关的软硬件环境。笔者在实际工作中利用这些策略进行了数个数据库应用系统设计,这些系统都表现出了良好的运行性能。

  参考文献

  [1]Gaja Krishna Vaidyanatha.Oracle性能优化技术内幕.机械工业出版社,2010,5:284.

  [2]李爱武.Oracle数据库系统原理.北京邮电大学出版社,2009-3-1:210.

看过“数据库应用论文”的人还看了:

1.关于计算机数据库运用方面的论文

2.数据库技术论文

3.浅谈交通运输信息平台数据库的实现论文

4.关于计算机数据库技术的论文

5.关于计算机数据库技术方面论文

6.计算机数据库毕业论文

2846604