欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 论文指南 > 论文写作参考

Web系统性能优化研究

时间:2016-04-09  作者:佚名
数据库设计是建立数据库及其应用系统的核心和基础,它要求对于指定的应用环境,构造出较优的数据库模式,建立起数据库应用系统,并使系统能有效地存储数据、以较高的效率进行工作,这样才能 满足用户的各种应用需求。然而该系统的数据库设计不仅对数据的完整性、安全性、一致性以及可恢复性等等特性造成影响,也对系统的运行效率产生非常大的影响。

 

(4)应用程序设计有缺陷。一个好的应用程序设计包括了程序设计技术的选择、合理的程序结构、高效代码的编写、代码运行时间和所耗费空间之间的权衡以及一些提高CPU运行效率的技术、方法(如多线程技术)等。但是在该系统设计的时候,只想到考扩充存储空间来提高效率,没有考虑代码是否高效,程序结构是否合理等因素,现在由于数据量的大增,单纯靠增加存储空间会导致大量浪费。

4 湖南省电力公司电力监控web系统性能优化方案

4.1系统应用程序优化

在本系统中,为了提高系统应用程序的性能,我们采取利用JAVA技术的多线程机制来实现。多线程是提高时间资源和系统资源利用率的重要手段,多线程程序具有提高系统的输入、输出速度、改善计算机通讯功能等优点。在多线程程序中,可以把这样的操作放到它自身的线程中去执行,使程序的其他部分继续独立运行。因此多线程是提高改善B/S模式web应用系统性能的重要技术之一。

在Java程序中可以通过对Thread类的继承派生一个子类,再由这个子类生成对象来实现线程的创建,也可直接实现接口Runnable来创建一个类,然后再由这个类生成对象创建线程,这两种实现方式的实质都是在于对Thread类构造函数的使用.Thread类是Java提供的一个系统类,该类提供了建立类Thread对象的能力,每一个对象都拥有自己独立的控制流,Thread类封装了与单独线程执行格关的数据成员和方法,允许把多线程集成到面向对象的框架中,此类是Java从语言级支持多线程机制的最直接体现。下面分别对这两种实现方式进行详细介绍。

下面是我们在一个程序中实现的双线程,创建类Thread的子类,即调用Thread类的构造函数Thread(),这个子类应定义自己的run()方法来覆盖Thread类的run()方法,在run()方法中实现线程的功能.一个Thread类的内部结构总是执行线程本身的run()方法.

首先,定义Thread子类。

Class OpThread extends Thread

{

public void run(){

System. Out. println(“Now run OpThread ”);

try{

sleep(5);}

catch(Interrupted Exception e){

return;}

}

}

其次,生成子类实例,并被调用。

class RunOp

{

public static void main(String args[]){

OpThread getOp=new OpThread();

Getzx. start();

while(Zx Thread.isAlive()){

System. Out. println((“Running ZxThread ');

try{

sleep(5);}

catch(Interrupted Exception e){

Return;}

}

此程序共有两个线程,第一个从命令行启动的线程,这是系统创建的线程;即main()方法;第二个则是用户定义线程,即run()方法,此两线程处于同等优先级。

当在程序中实现了双线程时,程序的运行性能相比原来能搞提高至少30%。所以适当提高程序中线程的个数在一定程度上能够有效提高系统应用程序的效率。

4.2数据库服务器优化

(1)系统参数的调整

在ORACLE数据库中有很多参数是来定义物理存储、资源利用的,这些参数设置得是否合适与系统的效率有着直接的有关系,参数的调整实际上就是要调整资源的利用率,其中对ORACLE性能影响最大的是内存参数。

内存参数的调整:内存参数对于任何系统性能的影响都是很明显的,对于ORCALE系统也同样如此,正确设置内存参数的大小,是提高ORACLE性能最重要的一个措施。ORACLE运行时,用到三部分内存区域:软件区、系统全局区和程序全局区。SGA区为一共享区,保存有数据缓存、字典缓存和REDO LOG缓存3种主要类型的高速缓存。PGA区为一个非共享区,连到ORACLE的用户进程都分配有一个PGA区,该区只能由代表用户活动的那个ORACLE进程来读和写。系统全局区和程序全局区的大小是否合适,对系统的性能有很大的影响。

对于内存参数的调整我们着重改善了共享池和数据缓冲区的大小:

ORACLE系统共享池包括LIBRARY CACHE(存放共享SQL和PL/SQL)和DATADICTIONARY CACHE(存放数据字典对象信息)。共享池的大小对数据库系统的性能有较大的影响,SHARED-POOL-SLZE(共享缓冲区大小)定义内存中LIBRARY CACHE和DATA DICTIONARY CACHE的字节数量。

在该系统中通过把LIBRARY CACHE和DATA DICTIONARY CACHE的值设置大点。保证当用户使用SQL语句进行语法分析时,减少不必要的系统调用。

由于SGA中的数据缓冲区CACHE用于存放ORACLE进程经常存取的表、索引和聚族等对象等的数据拷贝。用户使用的所有数据都要通过数据高速缓存,高速数据缓冲区越大,ORACLE可装入内存的数据就越多,磁盘的I/O就越少,系统的性能也就越好。

经过测试发现数据缓冲区命中率接近85%,而一般情况下要求缓冲区的命中率高于90%才比较合理,所以加大缓冲区的值,保证命中率不低于90%,经过调整以后,测试通常情况下命中率能够接近95%。

(2)数据库动态调整优化

一个ORACLE应用程序系统经过优化后,但并不能保证这个系统就一直平稳高效运行,因为随着数据库的动态变化,数据库的物理存储上会发生各种变化,其中一个比较影响数据库性能的因素是数据库碎片的产生。因此要保证对数据库碎片的及时整理,碎片的整理包括表空间碎片的整理和对象碎片的整理。

表空间碎片的整理:这种碎片来源于非正常中断和在表空间中重建数据库对象,一些比较小的自由空间散布在表空间中形成了表空间碎片,一般来说,表空间碎片对数据库性能的影响不是特别大。

在该系统中,由于系统本身的原因导致系统非正常中断次数较多,而且,对数据库重建的次数也较多,所以留下了很多表空间碎片,在此们用一个命令来消除表空间碎片,alter tablespace tablespacename coalesces,而不采用先导出数据再导入的策略,那样会增加工作量。

对象碎片的整理:当数据库表格中某些行被删除之后,块中就会留下自由空间,这些自由空间在它们所处的块返回自由列表之前是不会再被使用的,而要使块重新返回自由列表,那么必须在这块中删除足够的行。

查看相关论文专题
加入收藏  打印本文
上一篇论文:老年股骨颈骨折手术的护理体会
下一篇论文:《呼啸山庄》与《王子复仇记》死亡意识比较
论文指南分类
论文怎么写
相关论文写作参考
最新论文写作参考
读者推荐的论文写作参考