怎样从客户端提升SQL Server数据库性能_Mssql数据库教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:注意SQL Server视图管理中的四个限制条件
通过视图来访问数据,其优点是非常明显的。如可以起到数据保密、保证数据的逻辑独立性、简化查询操作等等。 但是,话说回来,SQL Server数据库中的视图并不是万能的,他跟表这个基本对象还是有重大的区别。在使用视图的时候,需要遵守四大限制。 限制条件一

第一:编写限制搜索范围的查询语句。

众所周知,在数据库查询的时候返回记录的多少直接关系到查询的效率。所以,在客户端通过一定的条件语句,限制搜索的范围,往往可以大幅度的提高查询的效率。

如用户在客户端查询数据库的时候,在查询语句中,加入TOP语句,让其显示前面的50条或者100条记录。因为根据经验,用户在查询数据的时候,60%左右要查看的都是靠前面的记录。特别是在一些历史交易信息表中,如在ERP系统的库存交易表中,就可以只显示前面几百条的记录,而不需要显示所有的记录。当用户觉得记录不够时,可以按“全部”,然后客户端再去服务器查询所有的结果。这种设计的话,就可以非常有效的提高数据库的查询性能。

如可以在在客户端设置默认的条件语句。如在ERP系统中,有个采购定单的表单;在后台数据库中,就对应着采购定单这么一张表。默认在查询采购定单的时候,查询到的是未结帐的采购定单。如此的话,即使用户在查询采购单时,没有输入采购定单号或者定单日期等限制条件,客户端在向服务器递交查询语句的时候,会默认把限制条件语句加入进去。如此,对于提高数据库首次查询的效率是非常有帮助的。

当然,无论是利用TOP语句,还是利用Where语句设置默认的限制条件,都不是随便设置的。这往往需要根据客户的使用习惯与表单的性质,来进行确定。如对于客户信息表,其客户本来数量也不多,所以,就没有必要设置限制搜索范围的查询语句。但是对于库存交易明细表,一个月下来,就有可能有成千上完条记录。如此海量的数据,若不设置限制条件的话,则查询起来,用户等待的时间会比较长。所以,针对这种情况,我们默认可以其只显示前面500条记录或者只显示最近30天之内的交易信息。

总之,在客户端适当的加入限制搜索范围的查询语句,是在客户端提高数据库服务器性能的一个首选的方法。

第二:尽量不要采用复杂的存储过程。

SQL Server数据库虽然提供了很强的存储过程功能,但是,在前台应用程序设计的时候,最好不要频繁的去调用数据库的存储过程。这主要是因为存储过程虽然方便,但是其执行速度没有普通的应用程序,如C语言那么快。

而从功能上看,很多存储过程可以完成的功能,前台应用程序完全可以实现。如在一些进销存管理系统中,往往需要把小写金额转换成大写金额,在采购定单上打印出来。这个功能即可以通过数据库的存储过程实现,也可以通过前台的应用程序实现。但是,根据笔者的观察,发现数据库的存储功能的性能不是很理想。若存储过程稍微比较复杂的话,如参数比较多时,客户端的响应时间就会比较慢。相反,如果不是在数据库后台实现这个功能,而是直接在前台利用应用程序实现的话,则其速度就会快许多。

另外,若在后台数据库中建立存储过程的话,会增加服务器的工作量。设想一下,现在采购部门有十个员工,若在一个时段内,都在维护采购定单的话,则就要同时调用这个存储过程,那么对于服务器的资源就会“争用”。相反,若在客户端实现这个功能的话,因为其都是在客户端上执行,所以服务器资源大家就不用你争我夺了。

所以,笔者在数据库设计的时候,很少采用存储过程。能够利用客户端应用程序实现的,就采用前台应用程序实现。真的要采用存储过程的话,也要采用那些减少争用和增加并发性的存储过程。

分享:大内存SQL Server数据库的加速剂
为数据库配置比较大的内存,可以有效提高数据库性能。因为数据库在运行过程中,会在内存中划出一块区域来作为数据缓存。通常情况下,用户访问数据库时,数据先会被读取到这个数据缓存中。当下次用户还需要访问这个数据时,就会从这个数据缓存中读

共2页上一页12下一页
来源:模板无忧//所属分类:Mssql数据库教程/更新时间:2009-06-11
相关Mssql数据库教程