現象
SQL Server Analysis Services でディメンションに対して処理操作を実行し、サービスがメモリ不足状態にあると、ディメンションを処理できず、データが破損する可能性があります。
注: この問題は、広範ではない比較的まれな競合状態で発生します。 この問題が発生すると、正しくないディメンション関係または ProcessUpdate エラーが発生する可能性があります。
この問題は、以下の状況で確認されています。
Analysis Services のメモリ使用量が、処理操作中にサービスに設定されている高いメモリ制限を超えているため、Analysis Services はメモリ ページを積極的にクリーンアップします。
処理中に問題に関するエラーやメッセージは記録されず、ディメンション処理は失敗しません。 代わりに、処理が完了し、破損したデータがディメンション ファイルに書き込まれます。
この問題は、新しく追加されたディメンション メンバーのディメンション属性の関係が正しくないこととして現れる可能性が最も高いです。 たとえば、製品ディメンションのメンバーが正しくないカテゴリまたはサブカテゴリの下に表示されます。
この破損が明らかになる別の方法としては、剛性属性リレーションシップを含むディメンションに対する後続の ProcessUpdate として、ディメンション処理が失敗し、次のエラー メッセージが表示されることがあります。
注
属性間の剛性関係は、ディメンションの増分処理中に変更できません。
注: このエラーは、基になるデータ ソースの変更など、正当な理由で発生することもあります。 ただし、ディメンションのソースとして機能するテーブルまたはビューの基になるデータが変更されていない場合は、これがエラーの原因である可能性があります。
この問題は、サーバーがメモリ不足状態にある場合に常に発生するとは限りませんが、ディメンション処理が完了する前に、新しく追加されたディメンション メンバーのデータ ページを削除する場合に発生することがあります。 これは、Analysis Services サービスのディメンション処理スレッドとメモリ クリーナー スレッドの間で比較的まれな競合状態です。
この修正プログラムをインストールすると、問題は発生しなくなりますが、問題を解決するには、影響を受けるオブジェクトを再処理する必要があります。
- サーバーがメモリ不足でないときに影響を受けるディメンションの ProcessUpdate を実行すると、すべてのフレキシブル リレーションシップでこの問題が原因で発生した破損が修正されます。 1 つ以上の剛性属性関係を持つ影響を受けるディメンションの場合、処理は失敗し、上記のエラーが発生します。
- 剛体関係を含むディメンションの問題を修正するには、サーバー上で影響を受けるディメンションの属性リレーションシップを変更し、ProcessUpdate を実行します。 その後、属性リレーションシップを rigid に戻すことができ、ディメンションを使用するメジャー グループのインデックスを再構築できます。
解決策
この問題は、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 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。
SQL Server 2014 の最新の累積的な更新プログラム
SQL Server 2012 SP3 の最新の累積的な更新プログラム
SQL Server 2012 SP2 の最新の累積的な更新プログラム
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料
Microsoft がソフトウェア更新プログラムについて説明するために使用する 用語について説明します 。