从客户端提升SQL Server数据库性能(2)

作者:彭芬 来源:IT专家网 时间:2009-03-06 14:27:00 

第三:在客户端采用高速缓存提高服务器性能。

我们都知道,数据库在设计的时候,也用到了缓存。缓存是操作系统内存中间的一个模块。因为从内存中读取数据要比在硬盘中读取数据要快的多,所以,在数据库中通过把拥护查询过的数据记入到缓存中去,从而可以服务器的性能。

现在有些程序开发人员更进一步。在客户端应用程序上,也可以假如缓存。客户端的缓存跟服务器端的缓存有异曲同工之妙。当某个用户查询了采购定单价格变更记录的时候,即使用户关掉了表,则其查询的数据仍然会在一定时间内保存在客户端的缓存中。当用户下次需要这方面数据的时候,则客户端就不会直接从数据库服务器从查询,而是先从客户端的缓存中找起。只有客户端应用软件的缓存中没有这方面信息的时候,才会把语句反馈给服务器,从服务器中提取数据。通过这种方式,就可以在客户端上分担服务器的压力,改善SQL Server数据库的性能。

不过,若在客户端设置了高速缓存的话,则最好在应用软件上,增加清除高速缓存的按纽。因为在默写情况下,我们可能想要知道即使更改的结果,而不是最后一个看到。如我们在服务器上,改变了某个金额。但是,由于在客户端上刚查询过这方面的数据,数据内容还在缓存中。则仍然显示的是哪个未改过之前的情况。此时,就需要通过“清除高速缓存”的方法来及时的看到改变后的内容。

第四:在前台实现表的完整性约束。

如果在后台数据库实现表的完整性约束,如某个字段不能为空的话,则需要经过很多个步骤。如客户端程序先把结果传递给表;然后在存储的时候,发现某个字段为空,不符合表的完整性约束的要求;数据库拒绝保存这条记录,并返回错误信息;数据库服务器把这个结果传递给客户端。很显然,这种处理机制比较麻烦。那么有没有什么简单的解决方法呢?

其实,我们若通过前台的客户端应用程序来实现表的完整性约束,可能对数据库的性能更加的有利。如在前台的客户端界面中,有某个字段不能为空。此时,我们就可以在前台应用程序开发的时候,加一限制,当这个字段为空的时候,不能保存。在前台客户端都不能够保存的数据,则当然不会传递给后台的数据库服务器。通过这种在前台实现表的完整性约束,就可以减少这个处理的过程。可以保障传递给后台数据库的内容都是符合完整性约束的。

另外,就拿默认值来说,也是在客户端应用程序中实现来的便捷。如笔者在数据库开发的时候,需要有一个记录创建与更新日期。这两个字段的话,就可以在为其创建默认日期。现在的问题就是是在前台客户端程序实现呢,还是在后台的数据库中实现限制呢?笔者比较倾向与前台。因为在前台,客户端直接会把当前的默认值传递给服务器,服务器直接保存即可。而不用触发服务器的默认日期的存储过程。

总之,笔者认为,我们在考虑改善数据库性能的时候,需要客户端与服务器端一起努力。或许通过这种方式,可以给我们一些意外的收获。使用过后,大家可能都会由衷的发表感叹,认同笔者的做法。

标签:客户端,SQL,Server数据库,性能
0
投稿

猜你喜欢

  • Python获取、格式化当前时间日期的方法

    2021-05-27 17:34:06
  • Python变量和字符串详解

    2023-08-23 02:59:49
  • 详解python调度框架APScheduler使用

    2021-11-05 22:55:36
  • 详解MySQL中的缓冲池(buffer pool)

    2024-01-26 01:05:53
  • 布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)

    2021-01-02 08:46:49
  • sqlserver 存储过程中的top+变量使用分析(downmoon)

    2024-01-13 13:03:41
  • python实现将json多行数据传入到mysql中使用

    2022-12-28 06:41:51
  • PHP使用Swagger生成好看的API文档

    2023-05-25 09:56:30
  • Python数组变形的几种实现方法

    2021-08-20 09:30:47
  • Jupyter Notebook的连接密码 token查询方式

    2023-10-21 23:51:47
  • numpy中索引和切片详解

    2022-06-07 16:19:05
  • Python中ArcPy栅格裁剪栅格(批量对齐栅格图像范围并统一行数与列数)

    2021-02-19 21:12:48
  • python爬虫自动创建文件夹的功能

    2023-11-05 08:22:40
  • VScode编写第一个Python程序HelloWorld步骤

    2023-06-07 02:58:33
  • MySQL 5.5.x my.cnf参数配置优化详解

    2024-01-27 02:12:48
  • Python牛刀小试密码爆破

    2021-10-05 14:18:47
  • 用Python 执行cmd命令

    2022-06-08 15:29:17
  • Python 动态绑定属性和方法 

    2021-03-02 21:25:34
  • js保留两位小数方法总结

    2023-07-18 17:34:35
  • php中Array2xml类实现数组转化成XML实例

    2023-07-14 21:48:13
  • asp之家 网络编程 m.aspxhome.com