监测和优化SQL Server的OLAP(联机分析处理)

联机分析处理(OLAP)系统是数据仓库系统最主要的应用,专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员,以便他们准确掌握企业(公司)的经营状况,了解对象的需求,制定正确的方案。

优化在线分析处理的性能是非常重要的,幸运的是,一些工具可以帮助监测和改善OLAP数据库的运行。

微软SQLServer分析服务(SSAS)提供了一个用来创建和管理数据挖掘应用和在线分析处理系统的强大引擎,为了取得最佳的OLAP性能,你应该仔细的监测和优化OLAP数据库和潜在的关系数据源,本文介绍了监测SSAS和优化OLAP性能的工具。

SQLServer Profiler

你可以使用SQL ServerProfiler基于选择好的事件来捕获SSAS实例的活动,SQL Server Profiler以跟踪的方式来捕获活动并且包含了一套满足最常见的跟踪捕获场景的预定义的模板,可以将跟踪到的信息保存到一个文件或者是一个允许你实时监测数据的SSAS的数据库中,也可以实时的或者是一步一步的在同一个或者是另一个SSAS实例上重放跟踪,通过对跟踪进行重放,能够轻易地找到运行慢的多维表达式,或者是MDXes,比较不同环境下的性能基准进行测试和调试,你也能够使用SQL Server Profiler对安全进行审核,比如说,可以设置用来审核失败的链接尝试或者是一个用户试图访问一个未经授权的对象时许可失败的跟踪文件,关于如何创建和运行跟踪的详细内容,请看为重放(分析服务)创建分析跟踪和分析服务跟踪事件。

系统监视器

监控本地和远程SSAS实例和操作系统以及所运行的计算机性能的一个最常使用的工具是系统监视器,这是一个Windows性能的实用组件,提供了近乎实时的仅被用来实时监控的性能信息,并且是被看作用来测量性能和识别硬件瓶颈的最好的工具之一,但是,你不能使用系统监视器来鉴定性能问题的原因,比如说,系统监视器也许显示高的CPU使用率,但是不会标识出原因;你可以从一个位置使用系统监视器来监控多个计算机,对于每一个需要监控的系统来讲可以减少资源占用,并且给了你一种直接比较不同计算机的性能统计的方法。

扩展事件和分析服务动态管理视图

扩展事件(XEvents)是一个对系统资源占用非常少的一个高伸缩性和轻量级性能监视系统的事件基础架构,使用XEvents,可以捕获针对所有SSAS事件给到指定的用户,XEvents基础架构已经被直接集成到了SQLServer并且可以使用T-SQL简单的进行管理,更多的信息请看SQL Server扩展事件。

分析服务动态管理视图(DMVs)是用来提供大量的关于分析服务实例状态和服务器健康信息的查询结构,使用这些信息能够诊断和调优分析服务实例或者是数据库性能,所有的DMVs都内置于$System中,关于使用DMVs监控分析服务的更多信息,请查看MSDN资源。

以上是用来监测SSAS和OLAP性能的工具,下面是优化OLAP应该考虑的地方。

使用索引

索引可以提高影响多维在线分析处理(MOLAP)分区处理速度和关系在线分析处理(ROLAP)分区查询速度的基础数据库的查询性能,大部分分析服务数据库是只读的因此可以从索引中受益,一般的经验法则是创建覆盖所有分析服务执行的查询,另外,为了实现最佳的性能,你应该创建的所有索引应该使用100%的填充因子。

在基础数据库中成本消耗会关系到使用的索引,比如,更新数据的查询(INSERT, UPDATE或者DELETE)也一定会修改索引,因此,大量的索引会降低这些DML操作(INSERT,UPDATE or DELETE)的性能,但是,这个不会影响到一个只读系统,另外,索引会占用时间和磁盘空间,最好的做法是使用SQL Server Profiler和数据库引擎优化向导或者和索引相关的DMVs和动态管理函数DMFS定期的分析查询和索引的使用,这样能帮助你发现需要创建的索引以及删除掉的索引。

选择适当的聚合

查询性能在很大程度上依赖于适当的聚合,但是没有必要在每一个维度的级别上添加聚合,当使用聚合设计向导(Aggregation Design Wizard)或者是Usage-Based优化向导时,你应该从较低的值开始尝试不同的性能增益值,最初,当你提高了性能增益值时会注意到主要的查询速度的提高,尽管性能增益值提高了,也常常会有收益递减,每一次性能的提升使得磁盘空间的增长逐步升级,你也能够使用搜索日志来存储用户查询以备为将来分析使用,使用Usage-Based优化向导对查询日志数据优化聚合,你也能使用聚合设计向导创建适当的聚合,对于一个拥有较少或者是没有查询日志数据的新的系统来讲聚合设计向导是非常有用的,而当一个系统成熟时Usage-Based优化向导会产生较好的结果。

使用主动缓存

为了在查询OLAP数据库时达到较快的效果,你必须使用MOLAP存储,但是,如果你使用了MOLAP,因为它是周期性的处理数据的,所以数据会有一些延迟,为了获得最新的数据,你也必须使用ROLAP存储,但是ROLAP的存储性能要比MOLAP在查询响应方面明显的慢,那就是主动缓存配置选项很有用的地方了,因为它允许分析服务可以从MOLAP和ROLAP两边检索,因此为使用了ROLAP的最新数据的MOLAP提供了效能,可以在MSDN资源中发现更过的关于主动缓存的信息。

时间: 2024-10-30 10:54:21

监测和优化SQL Server的OLAP(联机分析处理)的相关文章

应用事件探查器优化SQL Server系统

概述 当你的SQL Server数据库系统运行缓慢的时候,你或许多多少少知道可以使用SQL Server Profiler(中文叫SQL事件探查器)工具来进行跟踪和分析.是的,Profiler可以用来捕获发送到SQL Server的所有语句以及语句的执行性能相关数据(如语句的read/writes页面数目,CPU的使用量,以及语句的duration等)以供以后分析.但本文并不介绍如何使用Profiler 工具,而是将介绍如何使用read80trace(有关该工具见后面介绍)工具结合自定义的存储过

优化SQL Server索引的小技巧

server|技巧|索引|优化  SQL Server中有几个可以让你检测.调整和优化SQL Server性能的工具.在本文中,我将说明如何用SQL Server的工具来优化数据库索引的使用,本文还涉及到有关索引的一般性知识.关于索引的常识  影响到数据库性能的最大因素就是索引.由于该问题的复杂性,我只可能简单的谈谈这个问题,不过关于这方面的问题,目前有好几本不错的书籍可供你参阅.我在这里只讨论两种SQL Server索引,即clustered索引和nonclustered索引.当考察建立什么类

应用Profiler优化SQL Server数据库系统

当你的SQL Server数据库系统运行缓慢的时候,你或许多多少少知道可以使用SQL Server Profiler(中文叫SQL事件探查器)工具来进行跟踪和分析.是的,Profiler可以用来捕获发送到SQL Server的所有语句以及语句的执行性能相关数据(如语句的read/writes页面数目,CPU的使用量,以及语句的duration等)以供以后分析.但本文并不介绍如何使用Profiler 工具,而是将介绍如何使用read80trace(有关该工具见后面介绍)工具结合自定义的存储过程来提

优化SQL Server索引

SQL Server中有几个可以让你检测.调整和优化SQL Server性能的工具.在本文中,将说明如何用SQL Server的工具来优化数据库索引的使用,本文还涉及到有关索引的一般性知识.关于索引的常识 影响到数据库性能的最大因素就是索引.由于该问题的复杂性,我只可能简单的谈谈这个问题,不过关于这方面的问题,目前有好几本不错的书籍可供你参阅.我在这里只讨论两种SQL Server索引,即clustered索引和nonclustered索引.当考察建立什么类型的索引时,你应当考虑数据类型和保存这

优化SQL Server数据库查询方法

SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没有优

优化SQL Server数据库的经验总结

优化数据库的注意事项: 1.关键字段建立索引. 2.使用存储过程,它使SQL变得更加灵活和高效. 3.备份数据库和清除垃圾数据. 4.SQL语句语法的优化.(可以用Sybase的SQL Expert,可惜我没找到unexpired的序列号) 5.清理删除日志. SQL语句优化的基本原则: 1.使用索引来更快地遍历表. 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的.在非群集索引下,数据在物理上随机存放在数据页上.合理的索引设计要建立在对各种查询的分析和预测上.一般来说:①.有大量重复值.

优化SQL Server服务器内存配置的策略

引言 农业银行总行1998年以来正式推广了新版网络版综合业务统计信息系统,该系统是基于WindowsNT4.0平台,采用客户/服务器模式,以Microsoft SQL Server为基础建立起来的大型数据库应用程序,系统界面友好.操作简便,计算.分析.检索功能非常强大,为保证农业银行系统及时进行纵向和横向业务数据采集.按照不同要求生成统计报表,进行全面业务活动分析提供了强有力的保障.但在这套程序的推广.维护中笔者发现系统有时运行速度较慢,特别是在Win95客户端操作时尤为严重,经过排除网线连接等

详细介绍优化SQL Server 2000的设置

SQL Server已经为了优化自己的性能而进行了良好的配置,比今天市场其他的关系型数据库都要好得多.然而,你仍然有几项设置需要进行修改,以便你的数据库每分钟可以处理更多的事务(TPM).本篇文章的目的就是讨论这些设置.我们忽略那些可以通过硬件配置或者表或者索引设计提高的性能,因为这些内容在本篇文章范围之外. 破碎页面检测 在我们开始讨论服务器配置开关之前,让我们快速浏览一下你的模型数据库--或者说用作构建新的数据库的基础的模板.默认情况下,你可以在数据库中创建存储过程.函数等类似的东西,随后他

优化 SQL Server 索引的小技巧_MsSql

在本文中,我将说明如何用SQL Server的工具来优化数据库索引的使用,本文还涉及到有关索引的一般性知识. 关于索引的常识 影响到数据库性能的最大因素就是索引.由于该问题的复杂性,我只可能简单的谈谈这个问题,不过关于这方面的问题,目前有好几本不错的书籍可供你参阅.我在这里只讨论两种SQL Server索引,即clustered索引和nonclustered索引.当考察建立什么类型的索引时,你应当考虑数据类型和保存这些数据的column.同样,你也必须考虑数据库可能用到的查询类型以及使用的最为频