2011-11-04 58 views
0

我正在使用Microsoft.AnalysisServices.Server類連接到SSAS實例。使用C#進行分析服務數據庫凍結

我按名稱檢索數據庫並使用ProcessType.ProcessFull作爲選項調用Process方法。

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

程序掛起一個小時,之後數據庫將不會被處理。

我也嘗試傳遞一個XMLA命令來處理使用服務器類的數據庫。此命令在Sql Server Management Studio中運行時起作用,但在通過服務器連接傳遞時不起作用。

server.Execute("My XMLA Process Command") 

我使用server.Execute在我嘗試處理它之前先傳遞XMLA命令來創建數據庫。 create database命令正常工作,但process database命令不能使用XMLA或C#對象。它只是凍結了一個小時的程序,並沒有處理數據庫。

任何幫助將不勝感激。提前致謝。

+0

多久需要通過SQL界面做了充分的處理? – bryanmac

+0

在下方添加了類似的評論。通過SQL GUI,它需要<1分鐘。 – user326502

回答

0

取決於數據的大小,完整處理可能需要很長時間。

如果你正在創建一個gui應用程序並且它沒有響應,那可能是因爲你正在主線程上執行一個非常長的運行任務。試試像BackgroundWorker或ThreadPool.QueueUserWorkitem在後臺運行它。

要查看發生了什麼,可以通過訂閱進度事件並更新主線程中的UI來獲得進展。

下面是介紹訂閱這些進展跟蹤事件線程:

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

+0

非常感謝Bryan的迴應。當我在Sql Server Management Studio中運行MDX處理命令時,處理作業只需不到1分鐘即可完成。立方體中數據的大小很小,這使我相信還有其他一些原因。 – user326502