2017-08-30 45 views
1

我在SSAS服务器上有多个多维数据集,并且有几个10GB +的多维数据集。其中一个.NET应用程序正在通过OPENQUERY访问相对较小的立方体< 1GB立方体。OPENQUERY多维数据集查询在多维数据集处理过程中非常缓慢

当某个大型多维数据集处理(36GB +).NET应用程序超时时,由于存在默认超时(30s),我可能会增加超时时间,但这意味着用户需要等待1到5分钟去完成。如果我直接运行相同的MDX查询(SSMS或ADOMD),则在相同的情况下,我得到的结果为<。

MSOLAP提供程序具有允许InProcess = true。更改应用程序以使用ADOMD不是可行的选择,因为它需要太多的资源。

我试图使用资源调控器和单独处理应用程序查询和其他请求 - 它缓解了部分问题,现在不是每个查询超时 - 只是大多数。

还有什么我可以做的,以帮助SQL Server和SSAS相处吗?

PS。在查看服务器上发生的情况时,我注意到很多ODBC(以及相关的)都在SQL Server上等待。对我来说,看起来像多维数据集正在处理和访问来自SQL Server的数据时,它会通过OLEDB/ODBC提供程序“阻止”OPENQUERY对多维数据集的请求。我得出这个结论是因为即使我确信资源调控器有足够的空闲CPU和内存来处理.NET应用程序请求,它仍然会发生,服务器似乎不太忙(减少CPU /内存使用量)

编辑:

每个.NET应用程序调用运行很少的MDX查询运行到SSAS - 每个查询不会返回超过100行。所有这些都在临时表中合并为最终结果。现在,我知道开始和优化代码是合乎逻辑的,但代码是我们想要改变的最后一件事。它已经过很好的测试,并且表现不错。

我在寻找配置和基础设施的想法。

+0

究竟你是开放的查询做,你正在创建服务器临时数据那是consern。 –

回答

1

在存储过程中使用OPENQUERY(对于mdx)时,我们遇到了非常类似的阻塞和超时问题。

大约2年前,我们切换到开放源代码CLR解决方案 - 我们现在使用这些存储过程以类似于OPENQUERY的方式,但没有问题!

enter image description here

目前,它可以在这里找到:(在哪里链接创建服务器)

https://olapextensions.codeplex.com/

+0

我会试一试谢谢! –