SSAS(分析服务)优化手册

优化前注意事项

1、数据质量。数据仓库中维度表的数据质量要严格保证。比如店仓的大区、省区、管理城市等属性和店仓代码没有一对多的上下级关系,这样在设计店仓维度时,就无法建立有效的层次结构。这会拖慢查询时的性能。

2、对报表分类。可按报表的使用方式和体积对用户报表进行分类。

1) 有的报表侧重分析,维度汇总程度较高,数据量不是特别大,可以在门户中直接使用。

2) 有的报表要求显示全部明细数据,只是为了汇出至Excel文件进行加工,建议利用SSRS制作报表,然后将此报表以Excel格式发送至指定的共享文件夹或以邮件文件发送到指定用户。避免在门户中直接打开此类报表,这可能会严重消耗服务器的资源,影响其他报表的使用。

3、成员数量巨大的维度,不建议查询到最底层的数据(叶级数据)时展开全部。比如到货品。

4、一张报表减少Sheet页的个数,每个Sheet页的数据透视表个数最好不超过2个;

5、分析服务(SSAS)使用64位服务器,充分利用CPU和内存。

优化策略

一般地,按5个方面进行优化。

1. 数据源设计

2. 维度设计

3. Cube设计

4. 分区设计

5. 聚合设计

数据源设计

1、 为提高性能,请使用 Microsoft OLE DB Provider for SQL Server 或 SQL Native Client 访问接口而不是 .NET Data Provider for SQL Server (SqlClient) 连接到 SQL Server 数据源。

2、 不要在数据源中使用不支持的 OLE DB 访问接口。SSAS设计为使用特定的 OLE DB 访问接口集并经过测试。尽管其他 OLE DB 访问接口也可用,并且数据源向导可使您选择任何兼容的访问接口,但是不同访问接口的功能和行为可能有很大区别。

维度设计

良好的维度设计是建制Cube最重要的方面。根据最终用户的业务需求,设计维度正确的属性、属性关系及层次结构。

1、 避免只有单个维度的多维数据集

2、 避免建立多个维度,而这些维度只有单个属性,请考虑统一这些维度

3、 键属性(KeyColumns)的键列保证成员唯一性(可以使用多个键列保证唯一性)

4、 维度表中的字段如果没有分析意义,或暂时不用作分析,不要将它建为属性

5、 避免为每个维度指定多个不可聚合的属性(即IsAggregatable不要设为False)

6、 属性如设为不可聚合(IsAggregatable设为False),要指明DefaultMembers的值

7、 对具有 500,000 个或更多成员的属性使用数字键列

8、 有些说明性字段(比如客户的电话、邮箱地址),如果将它建为属性,请将AttributeHierachyEnabled 设为 False

9、 每个维度最好建立一个层次结构

1) 在维度中建立层次结构。如维度向导没有发现这些层次结构,要自行添加。

2) 建立层次结构前,先检查属性和属性之间是否存在严格的一对多关第,如有,请建立属性关系;

3) 属性关系的名称应与相关属性的名称相匹配;

4) 避免冗余属性关系,因为当多维数据集的粒度属性是非键属性时,这些关系可能导致数据无法聚合;

5) 较低级别的成员个数多于较高级别的成员个数;

6) 建立好属性关系,再建立层次结构;

7) 避免将属性的可见属性层次结构用作用户定义的层次结构中的级别

8) 如无必要,避免建立不存在属性关系的非自然的用户层次结构;

9) 有时,为方便用户操作和应用MDX,也可建立非自然的用户层次结构;

10) 避免层次结构中不包含的菱形关系

10、 将维度的 UnknownMember 属性从Hidden 更改为None

11、 定义时间维度时,使用“商业智能向导”,设置“Time”属性类型,以使它们与维度类型兼容

12、 设定时间维度键属性的valueColumn设为日期格式的字段

13、 不要将维度的 ErrorConfigurations中的KeyDuplicate 设为IgnoreError ,这样,SSAS会自检查维度和属性的数据关联性是否正确,并提出警告。根据这些警告,检查维度和属性的关联性是否正确。

Cube设计

1. 避免创建具有相同维数和粒度的度量值组

2. 避免将两个完全没有维度关联系的事实表放在一个Cube中

3. 避免在一个多维数据集中包含15个或更多的度量值组

4. 将非重复计数度量值分为不同的度量值组

5. 将Cube与分析无关的属性的 AttributeHierarchyEnabled设为False

分区设计

1、 使用 MOLAP存储模式

2、 将超过2千万行或大小超过250MB的大分区拆分为较小的分区以改进性能

3、 将度量值组的分区与少于2百万行或大小小于50MB分区合并

4、 DistinctCount度量值组分区可考虑按最常用的维度来分区(不一定是时间)

聚合设计

1、 不要在低于事实表粒度属性的级别建立聚合

2、 为具有 500,000 或更多行的分区设计聚合

3、 为单个分区生成的聚合数不能超过500

4、 不要将相关属性包括在同一聚合中

5、 将一个度量值组中的聚合设计数限制为三个

6、 删除任何分区都不使用的聚合设计

7、 包括只具有半累加性度量值的所有度量值组聚合中的时间维度粒度属性

8、 设计聚合时,要精确指定“估计的计数”和“分区的计数”;或者由SSAS自行计数

9、 聚合的大小不要超过事实表大小的1/3

10、 移除没有应用到分区的聚合

11、 基于用户使用情况进行优化(经常使用的维度、属性),针对这些属性设置聚合,以取得最佳查询性能。

时间: 2024-10-06 02:11:39

SSAS(分析服务)优化手册的相关文章

ssas 分析服务基于角色的动态授权

背景: 一个分析数据库,包含多个产品,全国各个地区的业务数据(比如销售数据等), 要求 1:各个产品负责人查看自己产品的数据 2:各个地区只能查看自己的数据 方案: SQL 2005 有基于角色的授权服务,通过设置产品和地区角色,来控制对数据的访问. 步骤: 0:在域上设置帐号和安全组 建立安全组:产品(mbiproducts),地区(mbidepartment) 如果查看产品.地区数据的账号尚未建立,则建立相应帐号 1:在地区维度和产品维度添加帐号属性(处理数据时应将账户的数据导入该属性)  

【cube】SSAS(分析服务)优化手册

优化前注意事项 1.数据质量.数据仓库中维度表的数据质量要严格保证.比如店仓的大区.省区.管理城市等属性和店仓代码没有一对多的上下级关系,这样在设计店仓维度时,就无法建立有效的层次结构.这会拖慢查询时的性能. 2.对报表分类.可按报表的使用方式和体积对用户报表进行分类. 1)   有的报表侧重分析,维度汇总程度较高,数据量不是特别大,可以在门户中直接使用. 2)   有的报表要求显示全部明细数据,只是为了汇出至Excel文件进行加工,建议利用SSRS制作报表,然后将此报表以Excel格式发送至指

mysql性能优化-慢查询分析、优化索引和配置

一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1)      max_connections 2)      back_log 3)      interactive_timeout 4)      key_buffer_size 5)      query_cache_size 6)      record_buffer_size 7)      read_rnd_buffer

mysql性能优化-慢查询分析、优化索引和配置【转】

一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1)      max_connections 2)      back_log 3)      interactive_timeout 4)      key_buffer_size 5)      query_cache_size 6)      record_buffer_size 7)      read_rnd_buffer

[译]SQL Server分析服务的权限配置

简介: 本文介绍如何配置SSAS数据库和cube相关维度的安全设置. 相对数据引擎来说,在Management Studio中配置分析服务的安全设置基本没什么区别.但是也会有一些限制,比如SSAS的权限配置都是围绕角色进行的,其次,角色的成员必须是基于windows或者ad环境的,SQL Server用户(比如sa)是无法使用的.还有,权限是无法直接授予给windows或者ad用户或者组的,这些用户或者组必须填加到角色中才可以.另外,如果UAC处于打开的状态,那么比如要以"Run as Admi

SQL Server分析服务的权限配置

 简介: 本文介绍如何配置SSAS数据库和cube相关维度的安全设置. 相对数据引擎来说,在Management Studio中配置分析服务的安全设置基本没什么区别.但是也会有一些限制,比如SSAS的权限配置都是围绕角色进行的,其次,角色的成员必须是基于windows或者ad环境的,SQL Server用户(比如sa)是无法使用的.还有,权限是无法直接授予给windows或者ad用户或者组的,这些用户或者组必须填加到角色中才可以.另外,如果UAC处于打开的状态,那么比如要以"Run as A

《性能测试诊断分析与优化》学习总结(一)

我始终坚信,一本好书,可以改变人的一生,成功一定有方法,失败一定有原因,而我个人认为,失败的最大原因是学习不够.不断学习,活到老,学到老. 作为软件测试人员来说,或多或少都会对性能测试有点感兴趣,我个人认为,软件性能与软件功能的最大兴趣在于从用户体检的角度,感受软件的质量度量,如响应时间.准确性.成功率等. 性能测试的目标是通过制定性能测试策略.性能测试计划.执行性能测试,并对性能问题进行定位分析和优化.影响软件系统的性能主要因素包括:硬件设施.网络.操作系统.并发用户数.数据库数据量.中间件等

【阿里云产品公测】利用PTS服务优化网站数据库读写性能

[阿里云产品公测]利用PTS服务优化网站数据库读写性能 作者:阿里云用户千鸟 写这个帖子主要也是因为在用PTS测试网站的时候,手动访问网站进入报错页面,主要原因是数据库连接对象存在问题,导致并发多的时候产生故障,于是简单分析了一下数据库读写的性能优化以及利用PTS的测试结果,整理出来和大家分享一下,顺便参加一下这个活动.        几乎所有的网站都需要数据库来存储网站中的相关信息,因此在网站应用与数据库的交互过程中,数据库数据读取的性能对网站整体的性能是至关重要的. ?      通常我们在

MYSQL数据库服务CPU高问题分析与优化

MySQL服务性能监控分析与优化是永恒的主题,做为性能测试人员有时也要站在DBA角度出发进行适当分析与优化,这也是性能测试人员能长期生存发展之路.而资源的使用监控分析才是性能故障分析的根本首要任务.在数据库服务器内部,如果执行的操作会严重受到内存.CPU或磁盘吞吐量中任何一个的影响,则可以将它视为瓶颈. 因此理解服务器如何运行,资源损耗在哪些方面对问题进行故障诊断是非常有价值有意义的活动,具体案例如下. 这些监控分析优化方法等细节我们在品课学院性能实战课堂中都会以实战方式进行实操性测试监控分析实