Ssas Analysis Services在清除缓存后响应缓慢

Ssas Analysis Services在清除缓存后响应缓慢,ssas,Ssas,我的Analysis Services数据库在处理后响应非常慢。通过使用ClearCache XMLA-命令清除缓存,也可以重现该问题。我知道在清除缓存后,查询性能会变慢,但在使用Microsoft.AnalysisServices.AdomdClient库时,我发现性能也会变慢 我做了一个小的计时测试 DateTime start = DateTime.Now; int dc = cube.Dimensions.Count; // cube = Microsoft.AnalysisServic

我的Analysis Services数据库在处理后响应非常慢。通过使用ClearCache XMLA-命令清除缓存,也可以重现该问题。我知道在清除缓存后,查询性能会变慢,但在使用Microsoft.AnalysisServices.AdomdClient库时,我发现性能也会变慢

我做了一个小的计时测试

DateTime start = DateTime.Now;
int dc = cube.Dimensions.Count; // cube = Microsoft.AnalysisServices.AdomdClient.CubeDef
DateTime end = DateTime.Now;
Debug.WriteLine("Start: " + start.ToLongTimeString());
Debug.WriteLine("Dimensions count: " + dc.ToString());
Debug.WriteLine("End: " + end.ToLongTimeString());
例如,这将给出以下结果

Start: 8:41:53
Dimensions count: 18
End: 8:43:15
因此,获取维度的计数几乎需要1.5分钟。如果我得到了度量值(只有很少的度量值),则性能相同

在第一次操作之后,以下所有操作和查询都很快。我的问题是,我如何解决这个问题?当数据库在每次数据库处理之后几乎没有响应时,这是一个真正的问题。我可以做一些事情在处理后自动“启动”数据库,但这不就是将等待时间从一个地方转移到另一个地方吗

更新: 我已经发现了问题所在。ManagementStudio和AdomdClient的性能不同的原因是,使用AdomdClient时,我与Analysis Services数据库的连接字符串不同。我在数据库中有一些自定义的东西,它是用连接字符串触发的。无论如何,问题现在已经解决了,与实际的分析服务没有直接关系


经验教训:确保使用正确的连接字符串进行测试:)

答案在问题更新中-罪魁祸首是不正确的连接字符串。

这对我的情况没有任何影响。在清除缓存后,您提到的查询确实在1-2秒内运行,我的应用程序的性能与以前一样慢。因此,当您运行任何其他查询时,它在清除缓存/处理多维数据集后运行1.5分钟,但当您运行此查询时,它会在1s内执行?如何:将MEMBER measures.X作为dimensions.count从[Your Cube]中选择measures.X ON 0清除缓存并在Management Studio中运行该查询后,它将在1-2秒内执行,但在使用Microsoft.AnalysisServices.AdomdClient.dll(AdomdCommand)运行该查询时,执行速度较慢(大约1.5分钟)。因此,这个问题似乎只与AdomdClient有关?您使用的是SQL Server 2005还是2008,以及应用了哪些SP和CU?另外,请查看:。可能值得尝试以编程方式执行select语句,以观察问题是出在发现命令还是所有查询上。将服务器修补到可能的最新更新也可以解决此问题。