通过阻止进程中的查询来避免SSAS中的死锁

时间:2016-02-01 10:45:33

标签: sql-server ssas deadlock olap cube

我有一个 SSAS多维数据集,定期处理,以便在源表中集成新的可用数据。

问题在于,有时似乎该过程会干扰导致锁定冲突的重度查询。 (每两周一次)

我该如何避免?

有没有办法阻止SSAS在处理多维数据集时执行查询?

这不应该对性能造成太大影响,因为处理时间通常很短。

此外,重新设计多维数据集以提高性能并降低发生此问题的可能性不是一种选择。

2 个答案:

答案 0 :(得分:0)

如何通过关闭防火墙来终止与SSAS的所有连接。我认为Disable-NetFirewallRule PowerShell命令会这样做。然后从本地框处理多维数据集。然后再次启用防火墙规则。

另一种不那么激烈的方法是编写一个"查询调控器"它将在处理过程中监视正在运行的查询,并取消任何超过30秒的运行查询。这篇博文将为您提供一个模式: http://blogs.msdn.com/b/johndesch/archive/2013/05/13/using-dmvs-to-monitor-and-terminate-long-running-mdx-queries.aspx

答案 1 :(得分:0)

SSAS表格模型

ForceCommitTimeOut属性与多维模型中的属性类似。这些属性以毫秒为单位,因此您可以通过将值降低到 1000 毫秒(这意味着 1 秒)来在功能环境中重现此问题。解决这个问题的方法是将这个属性的值增加到0,这意味着等到一个锁被释放。

ForceCommitTimeOut Property of SSAS Tabular model