2014-01-24 57 views
0

我正在使用一个小型的c#程序来处理使用C#API的SSAS数据库。问题是其中一个多维数据集处于挂起状态,Database.Process()是阻止调用,这意味着该进程会挂起,直到通过Process Explorer终止。SSAS多维数据集处理失败。返回跟踪信息需要永久

如果我手动执行处理,通过SQL Server Management Studio,我得到以下错误:Process failed. Trace information is still being transferred. If you do not want to wait for all of the information to arrive press Stop.但行为是相同的。 4个小时后,仍然没有追踪信息。如果我按停止它告诉我连接丢失。但如果原因是连接丢失,Database.Process()怎么不会抛出异常?

我有两个问题:

  1. 我该如何开始调试这?
  2. 是否有某种方法可以通过编程(或以其他方式)将SSAS数据库设置为快速失败而不发送看似无限量的跟踪信息?

我正在使用SQL Server 2008R2,如果它有任何区别。

+0

如果直接在SSAS中处理多维数据集,它会失败吗? – DaImTo

+0

是的。行为是相同的。我接受它失败。它突然间引入了行为,所以显然在某处存在错误。但是,我希望我的程序能够优雅地处理它,并且只要处理失败就会使多维数据集处理失败,而不是挂起5个小时以上,直到获取所有跟踪信息。也许它不能完成。我不知道。我在technet上发现的任何内容都表明您可以,但我是SSAS的noob。 :( –

+0

我会尝试做SSMS的事情,让它在一夜之间 - 或者在周末 - 看看是否有任何事情在早上出现,这似乎是获取数据的最佳方式。否则,检查事件日志,并按照http://www.bidn.com/blogs/AdamJorgensen/ssas/463/introduction-to-using-profiler-with-ssas-2008使用分析器 –

回答

1

调试Analysis Services问题的一种方法是使用性能监视器。您可以在“Microsoft SQL Server 2008 /性能工具/ SQL Server Profiler”的开始菜单中找到它。启动这个工具,点击“New Trace”,选择一个分析服务连接,并保留现在的事件选择等默认设置,然后点击“运行”。您将看到您连接的服务器的多个事件。

如果您然后从程序开始处理,您应该能够看到这显示为多个事件,并且希望错误会出现在某处的跟踪中。希望你的服务器没有太多的并发动作。否则,您必须在启动之前将跟踪限制为特定事件。