毕业设计(论文)-分布式数据库设计与效率分析.doc_第1页
毕业设计(论文)-分布式数据库设计与效率分析.doc_第2页
毕业设计(论文)-分布式数据库设计与效率分析.doc_第3页
毕业设计(论文)-分布式数据库设计与效率分析.doc_第4页
毕业设计(论文)-分布式数据库设计与效率分析.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目目录录摘要:摘要:.1关键词:关键词:.1引言引言.1第一篇第一篇理论篇理论篇.1一.传统CS模型.1二.多层CS模型.3三.三层CS结构的实现.5四.分布式数据库优化.6(一)应用层优化.6(二)数据库层优化.7(三)服务器层优化.9(四)网络层优化.11(五)操作系统层优化.11第二篇第二篇实践篇实践篇.13一.软件概论.13二.界面设计.15(一)登录界面.15(二)聊天主界面.15(三)服务器界面.16三.数据库设计.16(一)基本信息表(BasicInfo).17(二)详细信息表(DetailInfo).17(三)联系方式表(RelationInfo).17四.编码设计.18(一)登录流程图.18(二)聊天数据图.18(三)客户端代码.19(四)服务器端代码.22结束语结束语.25致致谢谢.25参考文献参考文献.25毕业论文1分布式数据库设计与效率分析分布式数据库设计与效率分析摘要:摘要:本文从多层数据库结构来分析获得高性能的系统,分布式系统中各个层次都不可忽视其功能,每个层次都会关系到整个系统结构的性能。数据库设计也不容忽视。客户层,应用服务器层,数据库服务器层三个部分组成整个系统。为了高效率系统,着重从这三个结构层次优化。关键词:关键词:多层结构、分布式、数据库、优化、DCOM引言引言数据库系统是企业信息的核心,其应用水平的高低直接影响到企业效率水平。选择了一个高性能的数据库产品不等于就有一个好的数据库应用系统,如果数据库系统设计不合理,不仅会增加客户端和服务器端程序的编程和维护的难度,而且还会影响系统实际运行的性能。一般来讲,在一个管理信息系统的分析、设计、测试和试运行阶段,因为数据量较小,设计人员和测试人员往往只注意到功能的实现,而很少会注意到性能的不足,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力、物力,而其最终结果就是给整个系统又打上了一个补丁,所以设计阶段是优化的重点。特别是当企业数据流量大的时候,系统的实时性非常重要。本文以SQLServer数据库产品为例,从以下几个方面讨论如何实现分布式数据库系统的性能优化。第一篇第一篇理论篇理论篇一一.传统传统CS模型模型客户机服务器系统是一个整体系统。服务器为多个客户端应用程序管理数据,而客户端程序发送、请求和分析从服务器接收的数据,这是一种“胖客户机(FatClient)”,“瘦服务器(ThinServer)”的系统机构。在传统的两层(Two-Tier)数据库系统中,由客户端程序和数据库服务器两部分组成,典型的两层系统结构如图:毕业论文2数据库服务器客户端客户端客户端(用户界面层)两层结构具有很多缺点,在当今业务要求下无发满足客户的需求:1.性能瓶颈在两层模式下,每个客户端在对数据库操作时都要建立一个数据库连接,这会占用数据库服务器固定的一部分资源。好比电话线,每个用户都要占一条线路。数据库服务器必须为所有连接的客户端提供服务,即使许多客户端的请求相似,数据库服务器很难让他们共享资源。当连接数越来越大时,服务器的内存资源会很快被消耗完毕,不得不使用磁盘作交换,性能严重下降。而实际上客户端并不是时时都在与数据库服务器交换数据,很可能是许多客户保持着连接却并没有访问数据库,但数据库仍然要为这些连接分配内存和CPU资源,导致其他重要业务不能及时处理,耽误业务。就好比为公司为各个部门配备一条电话线,结果有些部门因业务繁忙而要使用电话时得排队等候,有些部门的电话却闲着没有用,造成资源浪费效率地下。2.客户端连接数目问题数据库服务器一般按照客户端连接数目收费,就象电话线,两层模式下一个客户端就要占用一个连接,为了能满足更多的需要就的购买足够的客户端连接数目,而同时进行数据库访问得客户端可能远远少于同时进行连接得数目。3.稳定性无法保障一般数据库应用中只用一个数据库服务器来完成特定得数据库访问任务。如果数据库出现故障,客户端就无法进行数据库访问。时用后备服务不尽昂贵,而且动态切换技术很复杂,实现困难,效果不佳。4.客户端程序分发困难数据库应用的客户端程序由于包含了数据库访问引擎,还包括数据库连接配置,因此程序安装复杂,不利于操作者。对于客户端数目巨大时,当出现客户端升级情况,那么工作量是非常巨大的。5.程序维护苦难由于客户端程序包括了用户界面和业务逻辑处理,所以开发者必须同时维护这两部分的代码,编译修改一部分代码都会影响到整个客户端得程序。这样不利于团队开发,也影响代码重用。毕业论文3二二.多层多层CS模型模型多层数据库结构(MultiTier)正是为了解决两层结构所遇到得问题而提出得。大部分的多层数据库应用程序由三部分组成:1用户界面与用户最密切的是客户应用程序她由用户接口组成。用户通过客户应用程序输入或获取往往与数据库有关的信息。这些前台应用程序通常称为ThinClient(微客户),因为他们往往不包含或很少包含后台的处理。计算、访问数据库、数据的过滤、事务逻辑、网络操作以及其他的操作在中间层进行。尤其是多层应用程序中的客户程序不应该直接去访问BDE(BorlandDatabaseEngine)。通过使用DCOMCORBAOLEnterprise,TCPIP或一些其他协议,数据包可以在客户应用程序与中间层的应用服务程序之间发送和接受。2应用服务器多层数据库应用程序的第二层或中间层是应用服务程序,或者叫AppServer。系统的这一部分可能有一个或几个驻留在一台或多台计算机中的应用程序组成。在许多情况下,这些计算机中至少有一台计算机将包含BDE或其他提供访问数据功能的工具的一份拷贝。任何SQL客户软件。如OracleSybaseSQL等,也都可以安装在一台或多台应用服务程序的计算机上。应用服务程序接收来自客户程序的请求,然后,与数据库服务器进行通讯,处理客户的请求。应用服务程序在接受到这些信息后,将数据发送给客户。3数据库服务器在涉及到数据库的分布式应用程序中,系统的第三层可能是数据库服务程序。或者其他用来保存信息的文件系。Oracle、Sybase、DB2和SQL是一些分布式应用程序的第三层的例子。然而,即使没有涉及到数据库服务器的话,应用程序还可能是多层的。而且,这与数据的保存方式并没有多大关系。分布式应用程序的每一层在单独的机器上运行并且可以通过局域网或Internet与其它层进行通信。在本文中,客户层与中间层的通信有DCOM来完成。当然创建分布式应用程序的方法有很多,DCOM只是其中的一种。典型的三层结构如图:应用服务器(业务逻辑层)数据库服务器(数据访问层)客户端客户端数据库连接客户端(用户界面层)毕业论文4多层结构在三层结构基础上扩充应用服务器和数据库服务器。典型的机构图示:应用服务器(业务代理)应用服务器(业务逻辑层)客户端客户端客户端应用服务器(业务逻辑层)数据库服务器多层系统结构数据库应用模式带来了以下几点优点:1性能优势应用服务器承担了客户端的连接功能,只需要通过一个或者少量的连接数来访问数据库服务器。数据库服务器可以专门处理实际的数据库访问操作,只需维护少量的客户端请求,大大提高了效率。2减少数据库连接和传统的两层数据库想比,多层结构数据库系统大大减少数据库服务器需要客户端连接数目。3增强系统的可靠性应用服务器处于数据库服务器和客户端之间,屏蔽了客户端和数据库服务器之间的直接连接。因此,当数据库服务器出现故障时,应用服务器可以自动可以连接后备数据库服务器,动态切换比较容易。另外,应用服务器本身可以实现负载均衡,将数据库访问请求分配给不通的数据库服务器,提高系统的运行效率。由于应用服务器本身不维护数据库,当他出现故障时,可以很容易替换为别的应用服务器。4客户端分发方便多层系统结构中的客户端应用程序只包含用户界面程序和专门的多层数据库连接文件,由于不需要安装数据引擎,多层数据库结构可以减少客户端安装程序的复杂性,方便程序分发。在业务逻辑更改的情况下,不需要更改客户端程序,大大减少了升级的方便。5集中业务逻辑应用服务器中可以放置一些通用的业务逻辑代码,比如对特定时间段的业务处理。这样做一是可以集中处理业务逻辑,更改代码不会影响客户端程序,二是和存储过程相比,可以减少数据库服务器的负担。数据库服务器毕业论文5三三.三层三层CS结构的实现结构的实现三层CS结构是将应用功能分成表示层、功能层和数据层三部分。其解决方案是:对这三层进行明确分割并在逻辑上使其独立。原来的数据层作为DBMS已经独立出来,所以关键是要将表示层和功能层分离成各自独立的程序,并且还要使这两层间的接口简洁明了。一般情况是只将表示层配置在客户机中。与二层CS结构相比,其程序的可维护性要好得多但是其他问题并未得到解决。客户机的负荷太重,其业务处理所需的数据要从服务器传给客户机所以系统的性能容易变坏。如果将功能层和数据层分别放在不同的服务器中,则服务器和服务器之间也要进行数据传送。但是由于在这种形态中三层是分别放在各自不同的硬件系统上的,所以灵活性很高,能够适应客户机数目的增加和处理负荷的变动。例如,在追加新业务处理时,可以相应增加装载功能层的服务器。因此系统规模越大这种形态的优点就越显著。值得注意的是:三层CS结构各层间的通信效率若不高即使分配给各层的硬件能力很强其作为整体来说也达不到所要求的性能。此外设计时必须慎重考虑三层间的通信方法、通信频度及数据量。这和提高各层的独立性一样是三层CS结构的关键问题。在三层CS中,表示层是应用的用户接口部分它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据显示应用输出的数据。为使用户能直观地进行操作,一般要使用图形用户接口(GUI),操作简单、易学易用。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和值的范围,不包括有关业务本身的处理逻辑。功能层相当于应用的本体,它是将具体的业务处理逻辑地编入程序中。表示层和功能层之间的数据交往要尽可能简洁。数据层就是DBMS,负责管理对数据库数据的读写。DBMS必须能迅速执行大量数据的更新和检索。现在的主流是关系数据库管理系统(RDBMS)。因此一般从功能层传送到数据层的要求大都使用SQL语言。在三层或N层CS结构中,中间件(Middleware)是最重要的部件。所谓中间件是一个用API定义的软件层是具有强大通信能力和良好可扩展性的分布式软件管理框架。它的功能是在客户机和服务器或者服务器和服务器之间传送数据,实现客户机群和服务器群之间的通信。其工作流程是:在客户机里的应用程序需要驻留网络上某个服务器的数据或服务时,搜索此数据的CS应用程序需访问中间件系统。该系统将查找数据源或服务,并在发送应用程序请求后重新打包响应将其传送回应用程序。随着网络计算模式的发展,中间件日益成为软件领域的新的热点。中间件在整个分布式系统中起数据总线的作用,各种异构系统通过中间件有机地结合成一个整体。每个CS环境,从最小的LAN环境到超级网络环境都使用某种形式的中间件。无论客户机何时给服务器发送请求,也无论它何时应用存取数据库文件,都有某种形式的中间件传递CS链路,用以消除通信协议、数据库查询语言、应用逻辑与操作系统之间潜在的不兼容问题。在多层系统结构中,虽然比传统两层结构具有更多的优越性,但并不说,这时就不用考虑系统的优化了。在数据库系统中,优化是个永恒的课题。他能以最小的代价来获得最高的性能。在应用服务器层和数据库层的优化特别重要,是分布式系统中其核心层次。着重从应用层、数据库层、服务器层、设备层、网络层、操作系统层介绍系统的优化原则和方法。毕业论文6四四.分布式数据库优化分布式数据库优化在一个大型的数据库中尤其是分布式系统中,性能成为人们关注的焦点之一,如何让数据库高效有效的运行成为广大数据库管理人员和开发人员必须要考虑的问题。何谓“好性能”?性能是一个应用或多个应用在相同的环境下运行时对效率的衡量。性能常用响应时间和工作效率来表示。响应时间是指完成一个任务花费的时间,可以从以下三方面来减少响应时间:(1)减少竞争和等待的次数,尤其是磁盘读写等待次数(2)利用更快的部件(3)减少利用资源所需的时间绝大多数性能的获得来自于优秀的数据库设计、精确的查询分析和适当的索引。最好性能的获得能够通过确立优秀的数据库设计,在开发时学会使用SQLServer查询优化器来实现。为了取得更好的数据库性能,我们就需要对数据库进行优化,减少系统资源的竞争,如对数据cache过程cache,系统资源和CPU的竞争。在SQLServer中,有如下优化层次:(1)应用层大部分性能的获得来自于对你的SQL应用中查询的优化,这必须是以好的数据库设计为基础的。(2)数据库层应用共享在数据库层中的资源,这些资源包括硬盘,事务日志和数据cache。(3)服务器层在服务器层有许多共享的资源,包括数据高速缓存,过程高速缓存,锁,CPU等。(4)网络层指连接用户和SQLServer的网络。(5)操作系统层理想地,SQLServer是一台机器的唯一主要应用,它必须和操作系统以及其他软件,如BackupServer或SQLServerMonitor共享处理器、内存以及其他资源。在大多数情况下面,我们是对应用层进行优化,因为对应用性能的优化是大家最乐于接受的功能,其结果能被观测及检验,查询的性能是SQL应用的整个性能的一个关键。(一)(一)应用层优化应用层优化应用层上的问题包括以下内容:(1)决策支持VS.和在线事务处理(OLTP)需要不同的性能策略(2)事务设计能够减少并发,因为长的事务保持占用锁,也就减少了其他用户对相关数据的存取(3)关联一致性对数据修改需要join操作(4)支持Select操作的索引增加了修改数据的时间(5)为了安全而设立的审计限制了性能在应用层优化的选项包括:(1)远程处理或复制处理能够把决策支持从OLTP机器中分离出来(2)利用存储过程来减少编译时间和网络的利用毕业论文7(3)利用最少量的锁去满足你的应用需要1存储过程存储过程存储过程是一组预先编译好的Transact-SQL代码。存储过程作为一个独立的数据库对象,可以作为一个单元被用户的应用程序调用。由于是已经编译好的代码,所以执行的时候不必再次进行编译,从而提高了程序的运行效率。存储过程有很多好处:(1)执行速度快存储过程在创建的时候就经过语法检查和性能优化,因此在执行时不必再重复这些步骤。存储过程在经过第一次调用后就驻留在内存中,不必再经过编译和优化,所以执行速度很快。在有大批量处理要重复执行SQL的时候,使用存储过程可以极大提高效率。(2)模块化设计程序存储过程经过了一次创建后,可以被无数次调用。用户可以独立于应用程序而对存储过程修改。可以按照独特的功能模块,设计不同的存储过程以供使用。(3)减少网络通信量存储过程可以包含大量的SQL语句。但存储过程作为一个独立的单元来使用。在调用时,只需要一条语句就可以实现,所以可以大大减少网络上的数据传输。2事务处理事务处理事务时用户定义的作为单个逻辑工作单元执行的一系列操作。这些操作要么全做要么不做(Allornot),是一个不可分割的工作单位。事务的开始和结束可以由用户显示控制。如果用户没有显示的定义事务,则数据库管理系统安默认的规则自动划分事务。一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:(1)原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。(2)一致性:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如B树索引或双向链表)都必须是正确的。(3)隔离性:由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。(4)持久性:事务完成之后,它对于系统的影响是永久性的。即使出现故障也一直保持。(二)(二)数据库层优化数据库层优化毕业论文8数据库层的问题包括:(1)建立备份和恢复方案(2)在设备上分布存储数据(3)审计操作影响性能;仅审计你所需的(4)日常的维护活动将导致性能的降低和导致用户不能操作数据库表在数据库层上优化选择包括:(1)利用事务日志的阀值来自动转储事务日志防止其超出使用空间(2)在数据段中用阀值来监视空间的使用(3)利用分区来加速数据的装入(4)对象的定位以避免硬盘的竞争(5)把重要表和索引放入cache中,保证随时取得1索引索引在数据库系统中,索引是一种可选择结构,起目的是提高数据库访问速度。就想建立书本的目录一样,不论在物理还是逻辑上,数据库的索引都是独立与想关的表活簇的中的数据。可利用索引来提高用户的访问数据的速度和直接从索引中独立检索数据。如果对索引的配置和使用进行优化,那么索引能大大降低数据文件的IO操作和提高系统性能。对用户和应用程序而言,索引是透明的,且不许对应的应用程序做任何修改。但是,如果知道数据库中存在某个索引,那么可能在编写SQL语句是充分利用这个索引。索引的唯一优势在于可以提高用户的访问数据的速度。一个表可以有任意数量个索引,但一个表的索引越多,用户在改表中插入、更新或删除记录时所导致的开销也越大。其原因是无论何时更新表,系统都必须更新与之相关的索引。SQLServer采用基于代价的优化模型,它对每一个提交的有关表的查询,决定是否使用索引或用哪一个索引。因为查询执行的大部分开销是磁盘IO,使用索引提高性能的一个主要目标是避免全表扫描,因为全表扫描需要从磁盘上读表的每一个数据页,如果有索引指向数据值,则查询只需读几次磁盘就可以了。所以如果建立了合理的索引,优化器就能利用索引加速数据的查询过程。但是,索引并不总是提高系统的性能,在增、删、改操作中索引的存在会增加一定的工作量,因此,在适当的地方增加适当的索引并从不合理的地方删除次优的索引,将有助于优化那些性能较差的SQLServer应用。实践表明,合理的索引设计是建立在对各种查询的分析和预测上的,只有正确地使索引与程序结合起来才能产生最佳的优化方案。2改善改善SQL语句语句SQL语句在SQLSERVER中是如何执行的?有些人担心自己所写的SQL语句会被SQLSERVER误解。比如:selectfromtable1wherename=OOSKYandtID10000和执行:selectfromtable1wheretID10000andname=OOSKY一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行了;而前一句则要先从全表中查找看有几个name=OOSKY的,而后再根据限制条件tID10000来提出查询结果。事实上,这样的担心是不必要的。SQLSERVER中有一个“查询分析优化器”,它可以计算出where子句中的搜索条件并确定哪个毕业论文9索引能缩小表扫描的搜索空间,也就是说,它能实现自动优化。在SQL语句中,提出几个建议:(1)OR会引起全表扫描。(2)IN的作用相当与OR。(3)尽量少用NOT。(4)exists和in的执行效率是一样的。(5)用函数charindex()和前面加通配符%的LIKE执行效率一样。(6)union并不绝对比or的执行效率高。(7)字段提取要按照“需多少、提多少”的原则,避免“select”。(8)count()不比count(字段)慢(9)orderby按聚集索引列排序效率最高。(10)高效的TOP,在查询和提取超大容量的数据集时,影响数据库响应时间的最大因素不是数据查找,而是物理的I0操作。3实现小数据量和海量数据的通用分页显示存储过程实现小数据量和海量数据的通用分页显示存储过程建立一个web应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待甚至死机。更重要的是,对于非常大的数据模型而言,分页检索时,如果按照传统的每次都加载整个数据源的方法是非常浪费资源的。现在流行的分页方法一般是检索页面大小的块区的数据,而非检索所有的数据,然后单步执行当前行。4聚集索引的重要性和如何选择聚集索引聚集索引的重要性和如何选择聚集索引聚集索引有两个最大的优势:(1)以最快的速度缩小查询范围。(2)以最快的速度进行字段排序。聚集索引是很重要和珍贵,建立原则是:一定要将聚集索引建立在:您最频繁使用的、用以缩小查询范围的字段上;您最频繁使用的、需要排序的字段上。此外,利用视图和临时表都能大大加速数据库的访问,减少对磁盘的读写,提高IO读写速度。(三)(三)服务器层优化服务器层优化服务器层的问题有:(1)应用的类型服务器是支持OLTP还是DSS,或者两者都支持(2)所支持的用户数影响优化决策随着用户数的增加,对资源的竞争会发生改变(3)网络负荷(4)当用户数和事务数达到一定的数量时复制服务器或其他分布式处理是一个解决的毕业论文10方法服务器层的优化的选项包括:(1)优化内存一个关键的配置参数和其他方面的参数(2)决策是客户端处理还是服务器端处理有些处理能在客户端进行吗(3)配置cache的大小和IO的大小(4)增加多个CPU(5)为空闲时间排定批处理任务和生成报表(6)工作负荷发生改变,重新配置特定参数(7)决定是否可能把DSS移到另一个SQL服务器中设备层设备层的问题包括:(1)主设备、包含用户数据库的设备,用户数据设备,或数据库日志是否要镜像(2)怎样在设备之间分布系统数据库、用户数据库和数据库日志(3)为获得对堆表插入操作的高性能,是否有必要进行分区设备层上优化的选项包括:(1)用多个中等大小的设备及多个控制器可能比用少量的大设备有更好的IO性能(2)分布数据库,表和索引以在不同的设备上进行IO装载有关内存优化1内存内存(1)物理内存与虚拟内存WindowsNT使用两类内存:物理内存与虚拟内存。物理内存:作为RAM芯片安装在计算机内部的存储器。虚拟内存:用于模拟RAM芯片功能的磁盘空间,其实质是通过将内存中当前没有使用的部分内容临时存储到磁盘上,使系统可以使用到比物理内存更多的内存。(2)分页和分页文件WindowsNT系统通过使用磁盘空间使得对内存的需求得到部分缓解,从而使用到比物理内存更多内存的技术就称为“交换”或分页,也就是通常所说的虚拟内存技术。通常WindowsNT4.0系统安装时将在引导驱动器上设置一个大小为16MB的交换(分页)文件(pagefile.sys)。2优化优化WindowsNT4.0系统内存配置系统内存配置在大多数情况下,为了充分发挥WindowsNT4.0系统效能,内存的作用比起处理器的处理能力更具有影响力,特别是在客户服务器模式环境下更是如此,因为通常在这种环境下并不十分强调处理器的能力,相反却十分注重是否采用足够的内存来满足各个客户的应用需要。此外,为了获得容错功能和保护应用程序,保证应用程序高速运行、充分发挥设计功能都需要有足够多的内存,特别是工业绘图设计和各种工程应用程序更需要占用大量的内存来进行复杂的计算。物理内存(RAM)方便快速的优点显而易见,但由于其价格昂贵,也就不可能做到多多益善了,因此通过合理优化内存配置、扩充虚拟内存提高计算机运算速度也就成了一项很重要的应用技术手段。系统将内存分配给数据库系统,并用于数据库缓冲区、用户内存和用于存放数据字典和库缓冲区的内存池。应为共享内存池的不足将降低系统性能。所以为共享内存池分配足够的内存是非常重要的。在满足共享内存池要求后,为数据库缓冲区分配的内存越多,数据库系统的系统也就越高。系统内存永不嫌多。任何被缓冲的信息都将降低系统IO并提高系统性能。处理器所使用的内存可能仅限于系统的物理内存,但是如果使用了虚拟内存毕业论文11系统,那么系统使用的内存量可能大于系统的物理内存。可以想象在物理内存和虚拟内存的磁盘间交换页面的过程是非常耗时的,并且需要占用很多系统资源。系统访问内存的速度大约比访问磁盘的速度快100000倍。可见,物理内存对系统的性能有多大的影响。(四)(四)网络层优化网络层优化实际上,SQLServer的所有用户都是通过网络存取他们的数据。网络层上的主要问题有:(1)网络的流量(2)网络的瓶颈(3)网络的速度网络层上优化的选项包括:(1)配置包的大小,以使其与应用的需要相匹配(2)配置子网(3)分隔出繁忙的网络运用(4)创建一个高容量的网络(5)配置多个网络引擎更好地设计应用,限制所需的网络传输量。如果网络设计不合理,网络也将很容易成为系统性能的瓶颈。除了用性能高更高的交换机代替陈旧的集线器之外,网络管理员对网络的和合理划分和连接也很重要。将数据流量大的线路进行特别照顾。合理利用带宽,不让每一条线路空闲,也不让线路疲劳,分配均衡。保障线路通畅。特别时当线路出现故障时,要能及时切换备用的线路,不让系统瘫痪。当然其他黑客的破坏行为也需要阻止。(五)(五)操作系统层优化操作系统层优化操作系统层的主要问题有:(1)文件系统是否被SQLServer独占使用(2)内存管理精确估算操作系统和其他程序的内存占用(3)磁盘的存取控制器和磁盘(4)CPU的利用整个系统共有多少处理器可用有多少分配给SQLServer毕业论文12在操作系统层优化的选项包括:(1)网络接口(2)在文件和原始分区之间选择(3)增加内存(4)把客户操作和批处理移到其他机器上(5)SQLServer利用多个CPU,以适应工作负荷操作系统性能的好坏直接影响数据库的使用性能,如果操作系统存在问题,如CPU过载、过度内存交换、磁盘IO瓶颈等,在这种情况下,单纯进行数据库内部性能调整是不会改善系统性能的。我们可以通过WindowsNT的系统监视器(SystemMonitor)来监控各种设备,发现性能瓶颈。当您怀疑计算机硬件是影响SQLServer运行性能的主要原因时,可以通过SQLServerPeranceMonitor监视相应硬件的负载,以便证实您的猜测并找出系统瓶颈。下文将介绍一些常用的分析对象及其参数。1Memory:PageFaultssec如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。2Process:WorkingSetSQLServer的该参数应该非常接近分配给SQLServer的内存值。在SQLServer设定中,如果将”setworkingsetsize”置为0则WindowsNT会决定SQLServer的工作集的大小。如果将”setworkingsetsize”置为1,则强制工作集大小为SQLServer的分配内存大小。一般情况下,最好不要改变”setworkingsetsize”的缺省值。3Process:ProcessorTime如果该参数值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。4ProcessorPrivilegedTime如果该参数值和”PhysicalDisk”参数值一直很高,表明IO有问题。可考虑更换更快的硬盘系统。另外设置TempdbinRAM,减低”maxasyncIO”,”maxlazyw5Processor:UserTime表示耗费CPU的数据库操作,如排序,执行aggregatefunctions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值。6PhysicalDisk:Avg.DiskQueueLength该值应不超过磁盘数的1.52倍。要提高性能,可增加磁盘。注意:一个RaidDisk实际有多个磁盘。7SQLServer:CacheHitRatio该值越高越好。如果持续低于80%,应考虑增加内存。注意该参数值是从SQLServer启动后,就一直累加记数,所以运行经过一段时间后,该值将不能反映系统当前值。IO是计算机系统速度最慢的操作,凡是涉及到IO的过程,系统性能都将减慢,所以降低对IO的操作对提高系统性能非常重要。从高速缓冲区中读数据比在磁盘中读取数据快很多倍。实际上从内存中读取数据比从磁盘中读取数据快100000倍。在IO操作中,特别注意磁盘竞争,避免超过磁盘上IO的物理限制,而让其他进程排队等候。并且注意磁盘碎片。CPU在系统中的作用也不能忽视。双CPU系统应该是必须的配备的。毕业论文13第二篇第二篇实践篇实践篇随着INTERNET的发展,网路越来越深入影响人们的生活。通过网络我们的生活视野大大开阔,交际网络也不断扩大。网上各种各样的资源应有尽有。腾讯QQ的飞速发展,实现了我们一对多的远距离通信。在这个存在的“虚拟”世界里面,我们人类获得了又一大进步。现在在网上有很多聊天软件,例如现在很流行OICQ可以很方便简单的实现两个人之间聊天但是在局域网上比较难实现多人共同通信即NetMeeting,即使有也是要通过互联网上的Web的聊天室。这样不仅不够方便快捷(尤其对于在同一个局域网内的来说),而且还有价格昂贵和安去性不好等诸多问题。比如有时候,一间公司想在网上开一个会议,如果通过互联网上的聊天室,不仅上网费用高昂,速度又慢,而且还容易泄漏商业秘密,得不偿失。能更好理解多层分布式技术设计出一个简单的聊天软件MyQQ。这个软件可以在局域网上实现快速的网上通信,既省钱又省时间。而且服务端是运行在局域网里的本地PC机上,既安全又方便管理,而且速度快,方便可靠。服务端可以运行在本地局域网里的普通PC机内,不用特别的服务器,所以可以大大节省成本,而且实现简单,对后台数据库的要求也不高。只需要一般的机器就可以实现对后台数据库支持。一一.软件概论软件概论此聊天软件包括服务器端部分、客户端部分和数据库部分。服务器端包括了三个部分:广播消息栏,在线用户的及在线用户的地址。客户端部分包括登陆注册和对话三部分.首先没有注册的用户必须得先注册系统会返回一个5位以上的数字给你这就是你以后用来登陆的QQ号码.注册部分包括基本信息填写详细信息填写联系资料填写.注册完毕后你填写的资料才能保存到数据库里在注册部分最后系统会发一个5位数回来用来下次登陆鉴于每个局域网内QQ服务器不一样在登陆界面中可以对其登陆参数进行设置以确定哪台作为服务器.登陆成功后在线用户会出现在QQ聊天主界面里才可以和其他用户聊天.双击某在线用户即可和此在线用户单独聊天.如果某人登陆后服务器会向在线用户广播欢迎信息告之某人上线.在聊天主界面中可以查找那些用户在线.当服务器广播消息时.在主界面的系统消息菜单会出现提示.登陆菜单可以实现上线下线功能.在线用户的右键菜单中可以查看其详细资料和联系方式.由于程序中采用DCOM技术,所以作为服务器端的系统需要使用dcomcnfg.配置DCOM的安全策略,否则客户端无法连接上服务器。服务器先需要运行注册。毕业论文14采用工具:C+Builer6.0+SQLServer2000系统的软件模型如下:应用服务器(业务逻辑层)数据库服务器(数据访问层)客户端客户端客户端数据流图:毕业论文15服务器数据库登录基本信息联系资料详细信息信息注册客户端1客户端n登陆成功注册完成。二二.界面设计界面设计(一)(一)登录界面登录界面(二)(二)聊天主界面聊天主界面毕业论文16(三)(三)服务器界面服务器界面毕业论文17三三.数据库设计数据库设计采用SQL数据库,其中有基本信息,详细信息,联系方式三张表。每张表以QQ号(QQID)主索引字段。在用户注册时采用存储过程,优化数据库效率,每次注册只需发送需注册数据过来就可以了,减少网络数据。同时数据库中存储过程具有很多的优越性,一次编译,多次调用,减少数据库方便。注册时同时需要维护三张表,采用事务处理。维护三张表的正确性。(一)(一)基本信息表基本信息表(BasicInfo)(BasicInfo)毕业论文18(二)(二)详细信息表详细信息表(DetailInfo)(DetailInfo)(三)(三)联系方式表联系方式表(RelationInfo)(RelationInfo)四四.编码设计编码设计(一)(一)登录流程图登录流程图毕业论文19登录服务器验证成功失败聊天数据库(二)(二)聊天数据图聊天数据图服务器客户端客户端上线通知服务器更新在线用户聊天(三)(三)客户端代码客户端代码毕业论文201注册分析注册分析通过服务器端来调用数据库服务器上的存储过程来注册。AnsiStringSql=Sql=cinsert_QQBasicInfoSql=Sql+BasicInfor-MyQQInfo.QQImage+Sql=Sql+QuotedStr(BasicInfor-MyQQInfo.QQNickName)+Sql=Sql+BasicInfor-MyQQInfo.QQAge+Sql=Sql+QuotedStr(BasicInfor-MyQQInfo.QQSex)+Sql=Sql+QuotedStr(BasicInfor-MyQQInfo.QQPassword)+Sql=Sql+QuotedStr(BasicInfor-MyQQInfo.QQCountry)+Sql=Sql+QuotedStr(BasicInfor-MyQQInfo.QQZone)+Sql=Sql+QuotedStr(BasicInfor-MyQQInfo.QQCity)+Sql=Sql+QuotedStr(BasicInfor-MyQQInfo.QQQuestion)+Sql=Sql+QuotedStr(BasicInfor-MyQQInfo.QQAnswer)+Sql=Sql+QuotedStr(BasicInfor-MyQQInfo.QQEmail)+Sql=Sql+BasicInfor-MyQQInfo.QQCertificate+Sql=Sql+QuotedStr(BasicInfor-MyQQInfo.QQRegisterDate)ClientDataMod-DCOMConnection1-Connected=trueClientDataMod-ClientDataSet1-CommandText=SqlClientDataMod-ClientDataSet1-cute()ClientDataMod-ClientDataSet1-Active=false执

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论