症狀
當您在 SQL Server Analysis Services 中對維度執行處理作業,且服務處於記憶體壓力之下時,維度無法處理,而且資料可能會損毀。
注意:這個問題發生在相對罕見且並不普遍的競爭條件下。 發生此問題時,您可能會遇到不正確的維度關聯性或 ProcessUpdate 失敗。
在下列情況下觀察到這個問題:
Analysis Services 記憶體使用量超過處理作業期間為服務設定的高記憶體限制,導致 Analysis Services 積極清除記憶體頁面。
在處理過程中沒有關於問題的錯誤或訊息記錄,維度處理也不會失敗。 相反地,處理會完成,損毀的資料會寫入維度檔案。
此問題最有可能顯示為新新增維度成員的維度屬性關聯性不正確。 例如:產品維度中的成員出現在不正確的類別或子類別下。
此損毀可能會以另一種方式顯現:作為包含剛性屬性關聯性維度的後續 ProcessUpdate,維度處理會失敗,並顯示下列錯誤訊息:
注意
在維度的增量處理期間,無法變更屬性之間的剛性關係。
注意:此錯誤也可能是因為正當原因而發生,例如基礎資料來源中的變更。 不過,如果資料表或檢視表中做為維度來源的基礎資料並未變更,則這可能是錯誤的原因。
當伺服器處於記憶體壓力之下時,不一定會發生此問題,但當清除執行緒在維度處理完成之前收回新新增維度成員的資料頁時,有時會發生此問題。 這是 Analysis Services 服務中維度處理執行緒與記憶體清除執行緒之間相對罕見的競爭條件。
安裝此修正程式後,問題將不再發生,但必須重新處理受影響的物件才能解決問題。
- 當伺服器沒有記憶體壓力時,受影響維度上的 ProcessUpdate 將針對所有彈性關聯更正此問題所造成的損毀。 對於具有一或多個剛性屬性關聯性的影響維度,處理將會失敗並出現上述錯誤。
- 若要更正包含剛性關聯性維度的問題,請變更伺服器上受影響維度的屬性關聯性,然後執行 ProcessUpdate。 然後,屬性關聯可以變更回剛性,並且可以重建使用維度的量值群組索引。
解決方式
此問題已先在下列 SQL Server 累積更新中修正:
SQL Server 2014 的累積更新 14
SQL Server 2012 Service Pack 3 的累積更新 4
SQL Server 2012 SP2 的累積更新 13
SQL Server 2014 Service Pack 1 的累積更新 7
關於 SQL Server 的累積更新
SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:
適用於 SQL Server 2014 的最新累積更新
適用於 SQL Server 2012 SP3 的最新累積更新
適用於 SQL Server 2012 SP2 的最新累積更新
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。
參考資料
瞭解 Microsoft 用來說明軟體更新的 術語 。