SUSAN:如何通过报表数据库提高服务器性能
内容提示:在SQLServer数据库中有一个可缩放共享数据库的功能。这门技术在提高企业数据库性能的时候非常的有用。如数据库工程师可以通过这个技术实现专门为报表生成的只读数据库,又成为报表数据库,从而提高用户查询的效率。
一、报表数据库的优点
【IT专家网独家稿件】通常情况下,报表数据库必须驻留在一组专用的只读卷上。如上图所示,这些只读卷主要用来承载用户需要查询的数据。而且通过使用商用服务器硬件和商用卷硬件,可以扩展报表数据库,使之可以在多台报表服务器中提供相同的报表数据视图。在一组报表卷上声称报表数据之后,数据库系统便会将卷标记为只读并将其装入多台报表服务器。若用户需要查询数据库,则用户或者应用程序可以连接到任意一个附加有数据库的服务器实例,从而分担服务器的负荷。对于给定的报表数据库版本,不同服务器中的客户端所获取的报表数据视图是相同的,以确保数据的同一。具体的来说,在企业中实现报表数据库具有如下的优点。
(一)是实现工作负荷的隔离。
如上图所示,多台报表服务器使用各自的内存、CPU和tempdb数据库,从而防止某个不合理的查询占用所有服务器的资源。在现实工作中,经常会遇到这种情况。如某个用户查询产品信息时由于没有加入相关的过滤条件,结果从数据库中查询出几百万条记录,占用了大量的服务器资源,从而影响到其他用户的正常查询。如果采用报表服务器的话,那么这个查询其影响到的只是其中的一台报表服务器,而对于其他服务器不会产生丝毫影响。如可以根据用户的流量将部门进行合理的分组。然后再将部门连接到对应的报表服务器中。此时就不会因为某个部门的数据库查询流量过大,而影响到其它部门的正常应用。可见采用报表服务器,可以实现工作负荷的隔离,从而提高用户的查询效率。
(二)是为所有的服务器提供相同的报表数据视图。
在使用多台服务器来分散服务器的负荷时,管理员最苦恼都是如何确保各台服务器之间报表数据的同一。如对于相同的查询,不仅查询出来的结果要相同,而且他们的排序也是要一致的。也就是说,只有数据一致、格式一致的报表数据视图,才能够称之为相同的报表数据视图。因为对于报表来说,格式也是非常重要的一个内容。如果采用其他的解决方案,要实现这一点具有相当大的难度。但是如果采用这个报表服务器的话,则实现起来相对的简单。只要给所有的服务器实例都配置相同的方式,如单一的排序规则、相同的页边距配置等等,都可以在不同的应用服务器上获得相同的报表数据视图。
(三)是可以与其他的商用套件进行友好的集成。
现在市场上独立的报表服务器也有很多,如水晶报表等等。不过在使用这些商用的报表服务器的时候,需要注意这些服务器对于数据库数据可能造成的破坏。不过如果采用这个解决方案的话,则这个困扰就不会存在。因为服务器实例为生成报表而访问数据库时其访问的只是“报表卷”,而并不是真正的数据库。而这个报表卷可以设置为只读,从而从根本上防止一些商用套件对数据库原始数据的破坏。从而既可以实现跟外部套件的友好集成,而且又可以保证数据的安全。