我正在使用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#对象时,处理数据库命令将无法工作。它只是冻结程序一个小时,数据库不处理。
任何帮助都将非常感激。
完全处理可能需要相当长的时间,这取决于数据的大小。
如果你正在创建一个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 >);