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

下载本文档

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

文档简介

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

温馨提示

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

最新文档

评论

0/150

提交评论