2017-08-30 46 views
1

我在SSAS服務器上有多個多維數據集,並且有幾個10GB +的多維數據集。其中一個.NET應用程序正在通過OPENQUERY訪問相對較小的立方體< 1GB立方體。OPENQUERY多維數據集查詢在多維數據集處理過程中非常緩慢

當某個大型多維數據集處理(36GB +).NET應用程序超時時,由於存在默認超時(30s),我可能會增加超時時間,但這意味着用戶需要等待1到5分鐘去完成。如果我直接運行相同的MDX查詢(SSMS或ADOMD),則在相同的情況下,我得到的結果爲<。

MSOLAP提供程序具有允許InProcess = true。更改應用程序以使用ADOMD不是可行的選擇,因爲它需要太多的資源。

我試圖使用資源調控器和單獨處理應用程序查詢和其他請求 - 它緩解了部分問題,現在不是每個查詢超時 - 只是大多數。

還有什麼我可以做的,以幫助SQL Server和SSAS相處嗎?

PS。在查看服務器上發生的情況時,我注意到很多ODBC(以及相關的)都在SQL Server上等待。對我來說,看起來像多維數據集正在處理和訪問來自SQL Server的數據時,它會通過OLEDB/ODBC提供程序「阻止」OPENQUERY對多維數據集的請求。我得出這個結論是因爲即使我確信資源調控器有足夠的空閒CPU和內存來處理.NET應用程序請求,它仍然會發生,服務器似乎不太忙(減少CPU /內存使用量)

編輯:

每個.NET應用程序調用運行很少的MDX查詢運行到SSAS - 每個查詢不會返回超過100行。所有這些都在臨時表中合併爲最終結果。現在,我知道開始和優化代碼是合乎邏輯的,但代碼是我們想要改變的最後一件事。它已經過很好的測試,並且表現不錯。

我在尋找配置和基礎設施的想法。

+0

究竟你是開放的查詢做,你正在創建服務器臨時數據那是consern。 –

回答

1

在存儲過程中使用OPENQUERY(對於mdx)時,我們遇到了非常類似的阻塞和超時問題。

大約2年前,我們切換到開放源代碼CLR解決方案 - 我們現在使用這些存儲過程以類似於OPENQUERY的方式,但沒有問題!

enter image description here

目前,它可以在這裏找到:(在哪裏鏈接創建服務器)

https://olapextensions.codeplex.com/

+0

我會試一試謝謝! –