База данных служб анализа процессов с C # замораживается - PullRequest
0 голосов
/ 04 ноября 2011

Я использую класс Microsoft.AnalysisServices.Server для подключения к экземпляру SSAS.

Я получаю базу данных по имени и вызываю метод Process с ProcessType.ProcessFull в качестве опции.

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

Программа зависает на час, после чего база данных не будет обрабатываться.

Я также попытался передать команду XMLA для обработки базы данных с использованием класса Server.Эта команда работает при запуске в Sql Server Management Studio, но не запускается, когда я передаю ее через соединение с сервером.

server.Execute("My XMLA Process Command")

Я использую server.Execute для передачи команды XMLA для создания базы данных до того, как япопробуйте это обработать.Команда create database работает нормально, но команда process database не будет работать с использованием объектов XMLA или C #.Программа просто замораживает программу на час, а база данных не обрабатывается.

Любая помощь будет принята с благодарностью.Заранее спасибо.

1 Ответ

0 голосов
/ 04 ноября 2011

Полная обработка может занять довольно много времени в зависимости от размера ваших данных.

Если вы создаете приложение с графическим интерфейсом, и оно не отвечает, это может быть связано с тем, что вы выполняете чрезвычайно долгое выполнение задачи в основном потоке. Попробуйте что-то вроде BackgroundWorker или ThreadPool.QueueUserWorkitem, чтобы запустить его в фоновом режиме.

Чтобы увидеть, что происходит, вы можете получить прогресс, подписавшись на события прогресса и обновив свой интерфейс в главном потоке.

Вот поток, описывающий подписку на эти события трассировки прогресса:

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

...