从客户端提升SQL Server数据库性能(2)
作者:彭芬 来源:IT专家网 发布时间:2009-03-06 14:27:00
第三:在客户端采用高速缓存提高服务器性能。
我们都知道,数据库在设计的时候,也用到了缓存。缓存是操作系统内存中间的一个模块。因为从内存中读取数据要比在硬盘中读取数据要快的多,所以,在数据库中通过把拥护查询过的数据记入到缓存中去,从而可以服务器的性能。
现在有些程序开发人员更进一步。在客户端应用程序上,也可以假如缓存。客户端的缓存跟服务器端的缓存有异曲同工之妙。当某个用户查询了采购定单价格变更记录的时候,即使用户关掉了表,则其查询的数据仍然会在一定时间内保存在客户端的缓存中。当用户下次需要这方面数据的时候,则客户端就不会直接从数据库服务器从查询,而是先从客户端的缓存中找起。只有客户端应用软件的缓存中没有这方面信息的时候,才会把语句反馈给服务器,从服务器中提取数据。通过这种方式,就可以在客户端上分担服务器的压力,改善SQL Server数据库的性能。
不过,若在客户端设置了高速缓存的话,则最好在应用软件上,增加清除高速缓存的按纽。因为在默写情况下,我们可能想要知道即使更改的结果,而不是最后一个看到。如我们在服务器上,改变了某个金额。但是,由于在客户端上刚查询过这方面的数据,数据内容还在缓存中。则仍然显示的是哪个未改过之前的情况。此时,就需要通过“清除高速缓存”的方法来及时的看到改变后的内容。
第四:在前台实现表的完整性约束。
如果在后台数据库实现表的完整性约束,如某个字段不能为空的话,则需要经过很多个步骤。如客户端程序先把结果传递给表;然后在存储的时候,发现某个字段为空,不符合表的完整性约束的要求;数据库拒绝保存这条记录,并返回错误信息;数据库服务器把这个结果传递给客户端。很显然,这种处理机制比较麻烦。那么有没有什么简单的解决方法呢?
其实,我们若通过前台的客户端应用程序来实现表的完整性约束,可能对数据库的性能更加的有利。如在前台的客户端界面中,有某个字段不能为空。此时,我们就可以在前台应用程序开发的时候,加一限制,当这个字段为空的时候,不能保存。在前台客户端都不能够保存的数据,则当然不会传递给后台的数据库服务器。通过这种在前台实现表的完整性约束,就可以减少这个处理的过程。可以保障传递给后台数据库的内容都是符合完整性约束的。
另外,就拿默认值来说,也是在客户端应用程序中实现来的便捷。如笔者在数据库开发的时候,需要有一个记录创建与更新日期。这两个字段的话,就可以在为其创建默认日期。现在的问题就是是在前台客户端程序实现呢,还是在后台的数据库中实现限制呢?笔者比较倾向与前台。因为在前台,客户端直接会把当前的默认值传递给服务器,服务器直接保存即可。而不用触发服务器的默认日期的存储过程。
总之,笔者认为,我们在考虑改善数据库性能的时候,需要客户端与服务器端一起努力。或许通过这种方式,可以给我们一些意外的收获。使用过后,大家可能都会由衷的发表感叹,认同笔者的做法。
猜你喜欢
- 用ASP编写虚拟社区、网上购物等程序时,Application和Session对象具有举足轻重的作用,能够灵活合理地运用这两个对
- W3C(万维网联盟)日前发布了HTML 5公共草案,这是10年来对HTML的一次主要升级。据国外媒体报道,W3C HTML5草案于本周二发布
- 以发布目录为例:<OBJECT ID="agobjOraSession" RUNAT=&quo
- 一个站点成功与否,不是在于所用的程序语言是PHP还是ASP,也不在于用BLOG建站或是CMS建站,内容和专业很重要。博客很好起步,CMS体系
- 如果你真正理解Javascript函数是如何调用工作的,那么就可以避免一些bug的发生; 首先让我们创建一个简单的函数,这个函数将在下文中使
- 下面是滚动条css代码参数介绍:scrollbar-3d-light-color 设置或检索滚动条亮边框颜色 scrollbar-highl
- 使用T_SQL创建数据库 TestSchool 创建一个学生表 TblStudent 创建学生成绩表 TblScore q tScoreId
- 系列一:图片格式介绍Gif格式特点透明性Gif是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha 透明)
- 在 PHP 中实现异步定时多任务消息推送的方式有多种,其中一种常用的方式是使用异步任务队列。以下是一个简单的步骤:安装和配置消息队列服务(如
- buffer:下载数据缓冲区,以字节为单位,缺省依赖操作系统 consistent:下载期间所涉及的数据保持read only,缺省为n d
- Memoization 是一种将函数返回值缓存起来的方法,在 Lisp, Ruby, Perl, Python 等语言中使用非常广泛。随着
- IFRAME 元素 | iframe 对象创建内嵌浮动框架。成员表下面的表格列出了 iframe 对象引出的成员。请单击左侧的标签来选择你想
- 从业这几年,自己写过的和帮人参谋的所谓“设计规范”不少了,这个东西大概在中国的决策层眼里是这么回事儿 - 一帮农民在一块田里种粮食,起先天气
- 这次我们来说一些很小的东西,相当小。不过先说一个故事:这天晚上,你打算出去下一次馆子,就行动了,找到了一家新开的小店进去坐了下来,服务员很殷
- 去除字符串左右两端的空格,在vbscript里面可以轻松地使用 trim、ltrim 或 rtrim,但在js
- replace 方法返回根据正则表达式进行文字替换后的字符串的复制。stringObj.replace(rgExp, replaceText
- 最近在内部讨论关于”完美三栏”的话题,看到一篇”In Search of the Holy Grail“,相当的好.故此翻译之.In Sea
- 概要本文分步介绍了如何在运行 SQL Server 的计算机之间移动 Microsoft SQL Server 用户数据库和大多数常见的 S
- 代码如下: Function closeHTML(strContent) Dim arrTags, i, OpenPos, ClosePos
- 把昨天做的高级查询界面完善了一下,支持动态添加多个查询条件、定义逻辑关系,支持整形、浮点、字符串、日期、布尔值、自定义选择列表的录入,通过E