提高会计信息系统的数据服务器性能的研究
广东省农业管理干部学院 潘伟洪
[摘要]随着会计信息化的发展,会计信息系统的集成程度越来越高,存储账套的数据库对数据服务器要求也越来越高。本文针对庞大的账套数据库对服务器造成的压力在既定的硬件条件下如何提高数据服务器性能做出了有益的探讨。
在会计电算化教学过程中,以机代账的实操训练是必不可少的教学环节,也是会计信息化实现的具体形式。随着会计电算化向会计信息化过渡,会计信息系统的集成程度也越来越高,大型的后台数据库成为账套管理的主流支持技术,如SQL Server、Oracle等。
一、问题的提出
要教会学生以机代账,学生课堂作业就要完成一个或多个的会计业务循环,这意味学生的作业需要几周甚至更长的时间,再加上业务系统的训练,每个学生拥有多个实习帐套,因此,本人曾因教学需要,在一个会计信息系统服务器中建立了960个帐套数据库实体,即960个SQL Server数据库文件。在这庞大的账套数据库压力下,导致服务器的内存储器开销透支,客户访问请求的线程数和句柄数高居不下,CPU占用率长期为100%, 服务响应长期处于等待状态,学生实训基本停止。
二、分析和解决问题
(一)主要原因
出现在上述问题主要原因是单个服务器上增加的工作负荷使服务器性能明显下降造成的,所以,在既定的硬件条件下,如何提高服务器性能是既可节省成本又能解决问题的可靠途径。
(二)影响SQL Server数据服务器性能的因素
在SQL Server数据服务器安装过程中,默认状态只安装一个数据服务实例,在一个数据服务实例中管理过多的数据库实体时,SQL Server数据服务器性能就受到以下因素制约。
1、内存的开销
随着数据库的增多,支持大量存储过程所需要的内存也成倍地增加。对于 SQL Server 来说,需要更多的虚拟内存空间,以便为每个数据库上的每个过程编译执行计划,然后将该计划保存在过程高速缓存中。数据库的数量越多,所需的服务器过程高速缓存大小就越大。如果执行计划的数量超出了过程高速缓存能够存储的数量,系统将对计划执行重新进行编译,这将减少处理查询的吞吐量。当单个实例上的数据库数量从 500 增加至 1000 时,过程高速缓存中将没有足够的虚拟内存来保存内存中增加的所有查询执行计划。为了释放内存,以便为其他存储过程的计划腾出空间,系统会丢弃过程高速缓存中的某些执行计划,但是此操作要求在需要时重新编译这些被丢弃的存储过程计划。这样所造成的频繁的重新编译工作会影响工作负荷性能,服务器性能下降。
2、CPU 关系