欢迎来到天天文库
浏览记录
ID:38189857
大小:14.50 KB
页数:6页
时间:2019-05-25
《大型数据库在WindowsNT网上的应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、大型数据库在WindowsNT网上的应用Microsoft公司的WindowsNT网络操作系统具有优秀的GUI接口,人机界面十分友好;支持几乎所有的大型数据库系统,如Oracle、Sybase、SQLServer等,因此在实际工程中被广泛应用。作为大型数据库在网络中的应用,我们将介绍基于WindowsNT的SQLServer的数据库程序开发,开发工具采用Powerbuilder5.0。目前,大型数据库应用软件以客户机/服务器(Client/Server)结构最为流行。这是因为C/S结构在网络用户和网络上的应用很多的情况下,可以减少网络负
2、担,提高网络应用的速度。C/S结构的优点是前台查询数据时发送查询请求,由后台的数据库服务器(Server端)查询、处理数据,然后把所得的结果返回给发出查询请求的前台机器(Client端)。这样,大量的数据无须在网络上传送,大大减轻了网络负担,提高了网络的利用率。作为前台开发工具,Powerbuilder5.0可以直接与多种大型数据库连接(如Oracle,Sybase,Informix,MSSQLServer等),而无须通过ODBC,接口简单,速度快。从而大大缩短开发周期,提高开发效率。作为Powerbuilder特色之一的数据窗口(Da
3、tawindow)对象在处理大型数据库数据方面具有独特的优势。只要运用得当,就可以使应用程序充分运用客户机/服务器结构的特点,方便快捷的得到查询结果,而且查询结果的输出格式可以非常灵活的按照需要安排。Powerbuilder内嵌SQL语句,使熟悉SQL语句的程序员可以更方便的访问远程数据,提高效率。需要注意的是并不是大型数据库加Powerbuilder开发出的系统就是客户机/服务器结构。如果Datawindow以及一些powerbuilder函数应用不当,就会失去客户机/服务器结构的特点。此时若数据量小还无关紧要,但如果数据量非常大就会
4、使系统效率受到致命的影响。举一个简单的例子,如果需要查询某类的图书,使用Powerbuilder函数SetFilter(条件),那么Powerbuilder会把Datawindow中定义的列的所有的行的数据全部读到客户端机器,然后再根据“条件”中定义的范围显示应该显示的内容。这时可以看出,数据的检索是在客户端完成的,仅仅把数据库服务器当成了文件服务器,服务器的数据处理能力被浪费了。典型的客户机/服务器的处理方法应该是使用带参数的Retrieve(条件)函数,或者用Getsqlselect()取出SQL表达式再用字符串处理函数处理后用Se
5、tsqlselect()置回。Powerbuilder在处理时,把对Datawindow操纵的script语句(Retrieve,Update)翻译成内嵌SQL语句,最后发送到服务器端。注意这时的条件是作为SQL语句的Where条件发送到服务器端的,Powerbuilder仅做必要的语法检查,并不处理,由数据库服务器根据这个条件检索出数据,并把检索出的结果返回给客户机,由Powerbuilder根据datawindow定义的风格显示给用户内容。由此可以看出,客户端的系统资源主要用于快速美观的实现GUI界面,方便最终用户的使用;服务器端的
6、系统资源主要用于数据的存储、处理、检索和响应各客户端的请求。客户机与服务器一起协同工作,就构成了界面美观,维护方便,效率高,速度快的应用系统。客户机/服务器体系应用系统的设计与非客户机/服务器体系应用系统的设计最大区别在于客户机/服务器体系应用系统不仅要考虑客户端Powerbuilder如何编程,还要考虑服务器端数据库的结构,索引如何建立,客户端程序如何最大限度的利用SQLServer的优化策略。在大型数据库中,优化系统效率是一个比较复杂的问题,应该寻求数据库厂商专业技术人员方面的技术支持。用户能做的主要是考虑如何建立索引。建立索引的目
7、地是为了优化检索速度,如果检索所需要的时间过长,便有理由怀疑是否索引不存在或者优化器没有使用索引。尚若是索引不存在,那么就应该建立正确的索引,来解决检索速度慢的问题。索引可分为Clustered(簇式)和Non-Clustered(非簇式)两种。选择什么样的索引基于用户对数据的检索条件,这些条件体现于where从句和join表达式。在什么样的条件下才选择Clustered索引呢?如果你的应用与以下情况相符,你可以考虑选择Clustered索引:.主键时常作为where子句的条件.在where表达式中,某一列经常出现x<=column<=
8、y这样类似的格式.某一列非常频繁地被访问.某列被用作orderby或groupby.某列很少被改写.某列常出现在join中.Non-Clustered常被用在以下情况:.某列常用于Aggregate函数(如
此文档下载收益归作者所有