查询和回写性能
回写操作的性能,以及对回写数据的查询,在SQL Server 2008分析服务中获得了提高。在分析服务中的单元回写是提供给终端用户在叶子级或聚合级更新单元值的能力。单元回写为每一个测量组使用一个特别的回写分区,它存储了最新的单元值和原始值之间的不同(delta)。当一个MDX查询请求这个测量组的单元数据时,存储引擎访问所有分区,包括回写分区,并将结果聚合以生成正确
的单元值。
在SQL Server 2005和更早的版本中,分析服务要求回写分区具有ROLAP存储。这通常是单元回写中发生性能问题的原因,因为ROLAP分区按需查询关系型数据源以获得它们的数据。在SQL Server 2008中,我们允许回写分区使用MOLAP存储。从压缩MOLAP格式获得回写数据比查询关系型数据源要快得多。因此,MOLAP回写分区具有比ROLAP更好的查询性能。这个性能改进的多少是很大不同的,并且取决于一些因素,包括回写数据的大小和查询本身。
MOLAP回写分区还应该提高了单元回写性能,因为服务器从内部发送查询来计算回写delta,而这些查询很可能访问回写分区。注意,回写事务提交可能会慢一些,因为服务器不只要更新回写表,还必须更新MOLAP分区数据,但是这与获得的其它性能相比就无
关紧要了。
分析服务针对备份的增强
在SQL Server 2008服务中你会发现其中的一个性能改进是新的备份存储子系统。现在的备份存储子系统已经重写了,它使得可以得到更好的性能和可扩展性。这个改变对于你的应用程序来说是透明的——使用它不必改动代码。
新的备份存储子系统为分析服务备份文件推出了一个新的格式。这个文件名称扩展名没有改变。但是,内部的格式不同了,所以备份可以很好的升级到可以处理TB规模的数据库。
SQL Server 2008分析服务备份完全向后兼容SQL Server 2005分析服务。它使得你可以恢复在SQL Server 2005分析服务中备份的数据库。SQL Server 2008分析服务不具有以SQL Server 2005分析服务中所使用的旧格式来存储备份的能力。
新的高性能备份存储子系统允许客户执行新的备份场景。而在以前你需要依靠不成熟的文件系统拷贝工具来备份大型数据库,现在你可以使用与事务型系统集成在一起的内置备份子系统,并且可以与其它操作并行运行备份。
用于分析服务的可扩展共享数据
现在你可以就使用一个单独的数据库拷贝来升级你在许多小型服务器上的OLAP查询工作负载。SQL Server 2008分析服务通过一个叫可扩展的共享数据库(SSD)来支持这么做。
升级可以应用于很多场景和工作负载,例如处理、查询、数据和缓存管理。对于分析服务来说,最常见的升级场景是响应不断增加的并发用户数量,扩展多个服务器上的查询负载。这在过去是通过使用一个负载平衡解决方案来实现的,例如在多个服务器前面使用Microsoft Network Load Balancing (NLB)功能以及在服务器间复制数据。管理这样的环境会遇到许多挑战,而数据复制是主要的一个。可扩展的共享数据库特性使得数据库管理员可以将一个数据库标记为只读的,并将它从一个Storage Area Network(SAN)在多个服务器实例间共享,从而不再需要复制数据。这节省了磁盘空间,以及花费在拷贝数据上的时间。
提高性能的一个可选解决方案是升级,用一个单独的大型服务器替代多个小型服务器。升级的好处是在一个更大型的机器上,单独的查询可以处理的更快。但是通过SSD使用升级可以为你节省硬件(假设每个处理器成本更低),并仍然满足你对许多多用户工作负载的需求。此外,SSD允许你扩展为比可以用在一个单独的大型服务器上更多的处理器。
可扩展的共享数据库特性包含三个逻辑部分:
只读数据库:允许将一个数据库标记为只读的
数据库存储位置:允许一个数据库放在服务器数据文件夹外
附加/分离数据库:允许从任何UNC路径附加或分离数据库
这些特性一起使得可以查询升级场景。然而,每一个特性都是独立的,并且还有查询扩展以外的用法。
用于分析服务特性的SSD与在SQL Server 2005关系型数据库中推出的SSD特性工作方式类似。