每当与数据透视表进行交互时,我都非常难以使用Excel.添加/删除字段,更改过滤器或切片器,都需要在响应之前冻结几分钟的Excel.
看来生成的MDX效率极低.我可以理解他们必须动态生成MDX并且必须支持数据透视表的许多功能,但速度慢100倍是荒谬的.
当他们为行或列上的字段生成MDX时,他们使用DrilldownLevel(... [Property Dimension].[County])
我不确定Excel更复杂方法的目的是什么,但我希望有一些选项可以取消选中,以便Excel不需要使用DrilldownLevel函数.
相反,我通常省略Drilldownlevel函数,只做[Property Dimension].[County] .[County]来访问该属性.
使用Excel的MDX对同一结果集的查询需要5分钟,使用我的MDX需要不到5秒.
我已经验证了Excel渲染/格式化结果的速度不是很慢,因为我使用了Excel使用的MDX并直接在SSMS中运行它来验证时间.我可以在服务器上查看任务管理器,并在处理结果时观察CPU的流失情况.
注意,我不是责备服务器,因为我可以创建运行速度极快且提供相同结果的MDX查询.
如何让Excel生成更高效的MDX?我正在使用Excel 2010.
我听说powerpivot生成更高效的MDX,但是Powerpivot在SSAS之上不可用,因为它没有利用SSAS多维数据集.因此,对于为什么Powerpivot在SSAS之上不起作用的短暂咆哮.如果您将数据从SSAS导入powerpivot,那么您实际上正在执行的是执行巨型交叉连接以将数据从SSAS迁移到Powerpivot表中.如果你试过这个,你会发现它会生成字段名称/标签,例如"Property DimensionCountyCounty Name"......哇真的吗?然后,您只需使用本地Powerpivot的OLAP引擎处理数据,因此依赖于具有64位操作系统的客户端计算机,以便使用合理大小的数据集.这是因为如果你是刚刚切割出SSAS,扔了你所有的努力构建一个复杂的OLAP数据库和所有的元数据,计算,汇总等一半使用SSAS的原因是,它可以汇总详细数据在它返回客户端之前,客户端不需要64位操作系统,并且客户端上不需要大量资源.我非常努力地使用反对SSAS的powerpivot可用,但在尝试了几种方法并且与用户来回之后,它真的没有接近可用的地方.不敲PowerPivot的,因为我看到它的用处在许多其他方案,但如果你的SSAS多维数据集是系统的重要组成部分(即计算,聚集了大量的服务器端,记录等),则PowerPivot的似乎是错误的选项.
这是我的查询示例:
SELECT
NON EMPTY CrossJoin(
{[Department Dimension].[Name].[Name]},
{[Finance Month].[Report Year].[Report Year]}
)
ON COLUMNS ,
CrossJoin(
{[Department Finance Line Type Dimension].[Display Order].[Display Order] },
{[Department Finance Line Type Dimension].[Line Number].[Line Number]},
{[Department Finance Line Type Dimension].[Display Name].[Display Name]}
)
ON ROWS
FROM
(
SELECT ({[Department Dimension].[County].&[Seminole],[Department Dimension].[County].&[Sarasota]}) ON COLUMNS FROM [HYP Data View]
)
WHERE ([Department Finance Line Type Dimension].[Section Name].&[Part 1 …Run Code Online (Sandbox Code Playgroud) 当多个用户可以同时处理同一个多维数据集并因此处理多维数据集失败时会出现问题.所以我需要检查某个立方体是否正在处理当前时刻.
我是SSAS的新手,并在SSAS 2012中创建了一个多维数据集.
当我浏览多维数据集时,我可以轻松地将我的维度作为行,但如何将它们添加为列?在以前的版本中(我可以访问2008年创建的多维数据集),当您浏览多维数据集时,可以将维度拖动到列或行中.
我是否错误地设置了立方体?
是否可以使用R查询SQL Server Analysis Services多维数据集?我有一个不同的外部服务器上的这个多维数据集,我在我的机器上工作,但我有我的域帐户在服务器上的管理员权限.简单地说,我想创建一个alaysis服务解决方案,起诉一些挖掘算法来检查Cube中的数据.例如,我可以用Excel做到这一点,但我需要使用R来利用与MS提供的不同的几种有趣的聚类算法.那可能吗?我应该在R中导入哪个包?
我有一个SSAS-2014立方体.如果在excel中的任一轴或透视表的过滤器窗格中使用特定维度,我想将特定度量设置为NULL.现在,最直观的解决方案是将此度量的范围与该维度的成员无关.说,我不希望该度量与会计期间成员一起使用,然后我在多维数据集中使用以下MDX:
CREATE MEMBER CURRENTCUBE.[Measures].[Test Measure] AS 1;
SCOPE([Measures].[Test Measure]);
SCOPE(DESCENDANTS([DIM Accounting Period].[Accounting Period Hierarchy].[All],,AFTER));
THIS = NULL;
END SCOPE;
END SCOPE;
Run Code Online (Sandbox Code Playgroud)
这似乎很好,因为excel将以下MDX发送回SSAS引擎
SELECT NON EMPTY Hierarchize (
{
DrilldownLevel (
{ [DIM Production Period].[Production Month].[All Dates] }
,
,
, INCLUDE_CALC_MEMBERS
)
}
) ON COLUMNS
FROM [CUBE - Opex Analysis]
WHERE ( [DIM Accounting Period].[Accounting Period Hierarchy].[Accounting Year].[2015],
[Measures].[Test Measure] ) CELL PROPERTIES VALUE
, FORMAT_STRING
, LANGUAGE
, BACK_COLOR
, FORE_COLOR
, FONT_FLAGS
Run Code Online (Sandbox Code Playgroud)
如果我在筛选器窗格中选择了两个成员,则会出现问题,如此图所示

其原因似乎与excel发送回引擎的MDX有关.它将项目封装在子多维数据集中,使引擎认为没有选择会计年度.这是excel使用的MDX:
SELECT NON …Run Code Online (Sandbox Code Playgroud) 这适用于为报表动态设置数据和呈现报表的应用程序.
我有一个依赖于参数的报告的MDX查询.查询是:
SELECT NULL ON COLUMNS, strtomember(@DateYear) ON ROWS FROM [MYDATACUBE]
Run Code Online (Sandbox Code Playgroud)
在报表查询设计器中运行它时,它会正确返回一个值.但是,在Visual Basic代码中运行它时,它什么都不返回.这是我的代码的重要部分:
Dim cn = New AdomdConnection(adomdparamconnectionstrings(countparamsadomd))
Dim da As AdomdDataAdapter = New AdomdDataAdapter()
Dim cmd = New AdomdCommand(paramcommands(countparamsadomd), cn)
Dim tbl = New DataTable
If (adomdparams) Then 'If there are parameters, adds them to the query
For l As Integer = 0 To (countparamsadomd - 1)
If (adomdparamconnectionstrings(l) = "NODATASET") Then
Dim p As New AdomdParameter(paramvaradomd(l), paramadomd(l))
cmd.Parameters.Add(p)
Else
Dim p As New AdomdParameter(paramvaradomd(l), adomdqueryvalues(l))
cmd.Parameters.Add(p)
End If …Run Code Online (Sandbox Code Playgroud) 我需要将Azure SSAS模型的兼容性级别更新为1400。当前为1200。当我单击Model.bim并转到“属性”时。(在Visual Studio 2017中)在属性“兼容性级别”下没有可供选择的选项。
我目前在VS 2017(版本15.9.9)
.NET Framework已打开(版本4.7.03062)
我确实关注了本文,但仍然看不到更改它的选项。 https://azure.microsoft.com/zh-CN/blog/1400-models-in-azure-as/
我的解决方案也在Source Control中。
通过Excel连接多维数据集时,我需要您的帮助来更改Excel工作表中的维度属性数据类型,并且在数据仓库中将列定义为“ FLOAT”,在多维数据集中将列定义为“ DOUBLE”,但是该属性在Excel中始终显示为字符串通过Excel工作表连接多维数据集时工作表。
而且我也没有定义name列属性,因为name列将始终支持字符串数据类型。
请从Adventure Works多维数据集中找到以下示例,以了解我的情况。
我已经从产品维度中获取了“重量”属性,并且在冒险工作中,该属性的键列和值列具有“ Double”数据类型,名称列具有“ Wchar”数据类型。
由于“名称”列属性,“权重”属性在Excel工作表中显示为字符串。
因此,我已将“名称”列定义删除为“重量”属性,并将“值”列和“键”列属性保留为“ Double”,但在excel中,“重量”属性仍显示为“字符串”。
任何人都可以帮助在Excel工作表中将此尺寸属性设置为“ double”吗?
请找到以下屏幕截图以供参考。
预先感谢您的帮助。Bhavani R
我有3个具有相同结构但数据不同的数据库,因为它们来自不同的客户端.
现在,我有一个现有的SSAS项目.其数据源视图,多维数据集和维度只能使用或访问一个数据库.
这些可能吗?您能否提供见解和一些有用的参考资料?
我正在尝试部署一个ssas表格模型(我不知道我在做什么)
我已经使用VS2013在SQL Server 2008 R2上进行了多维.我想尝试将Tabular与power BI结合使用.
所以我建立了一个SQL Azure数据库,我有Azure SQL数据库和Visual Studio 2013 Pro
我可以在VS2013中获得与Azure DB的连接并针对它编写T-SQL,但是当我尝试创建表格模型并选择Azure数据库作为SQL Server工作区时,它无法建立连接.
是与兼容模块有关还是我需要创建Azure VM?谢谢你的帮助... ps这是我的第一个问题,我很兴奋