使用c#的过程分析服务数据库正在冻结

本文关键字:冻结 数据库 服务 过程分析 使用 | 更新日期: 2023-09-27 18:13:23

我正在使用Microsoft.AnalysisServices.Server类连接到SSAS的实例。

我按名称检索数据库,并使用ProcessType调用Process方法。ProcessFull作为选项。

server.Databases.FindByName("MyDatabase").Process(ProcessType.ProcessFull)

程序挂起一小时,之后数据库将不再被处理。

我还尝试传递一个XMLA命令来使用Server类处理数据库。此命令在Sql Server Management Studio中运行时有效,但当我通过服务器连接传递它时不运行。

server.Execute("My XMLA Process Command")

我使用服务器。在我尝试处理数据库之前,通过XMLA命令来创建数据库。创建数据库命令可以正常工作,但是使用xml或c#对象时,处理数据库命令将无法工作。它只是冻结程序一个小时,数据库不处理。

任何帮助都将非常感激。

使用c#的过程分析服务数据库正在冻结

完全处理可能需要相当长的时间,这取决于数据的大小。

如果你正在创建一个gui应用程序,它没有响应,这可能是因为你正在主线程上执行一个非常长时间的任务。尝试一些类似BackgroundWorker或ThreadPool的东西。QueueUserWorkitem在后台运行。

要查看正在发生的事情,您可以通过订阅进度事件并更新主线程中的UI来获取进度。

下面是一个描述订阅这些进度跟踪事件的线程:

http://social.msdn.microsoft.com/forums/en - us/sqlanalysisservices/thread/e9f87b28 a8c2 - 40 - fc - b6e6 - 68 dfa59b07a6

我今天发现了这个线程,2023年3月24日,上面的代码不再工作,虽然没有错误…

我设法让它工作的XML(取自SQL Mgmt Studio 'script'按钮右键单击'进程',然后使用这个XML像这样:

using Microsoft.AnalysisServices;
using Microsoft.AnalysisServices.Core;
//in a function/method    
Microsoft.AnalysisServices.Server server = new Microsoft.AnalysisServices.Server();
        
server.Connect(<your connection string>);
        
server.Execute(<the XML string taken from the server mgmt studio process script >);