現象
たとえば次のようなシナリオを考えてみます。
- 多次元モードではSQL Server Analysis Servicesを使用します。
- Windows 低断片化ヒープを使用するには、HeapTypeForObjects プロパティを 0 に設定します。
- クエリと処理操作の組み合わせを実行します。
このシナリオでは、Analysis Services エンジンによって割り当てられた大きなオブジェクトによって、数時間または数日にわたって Windows メモリ ヒープが断片化する可能性があります。 断片化が増えると、インデックス処理操作がボトルネックになり始め、完了するまでに非常に長い時間がかかる場合があります。
解決策
更新情報
この問題は、SQL Serverの次の累積的な更新プログラムで修正されています。
SQL Server 2014 SP2 の累積的な更新プログラム 1
累積的な更新プログラム 4for SQL Server 2012 Service Pack 3
SQL Server 2014 SP1 の累積的な更新プログラム 8
推奨事項: SQL Serverの最新の累積的な更新プログラムをインストールする
SQL Serverの各新しい累積的な更新プログラムには、すべての修正プログラムと、以前の累積的な更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムを確認してください。
SQL Server 2012 SP3 の最新の累積的な更新プログラム
SQL Server 2014 (SP1/SP2) の最新の累積的な更新プログラム
追加情報
既定では、Analysis Services では、固定型オブジェクトのメモリ割り当てに Windows 低断片化ヒープ (LFH) が使用されます。 これは HeapTypeForObjects 設定によって制御されます。 場合によっては、LFH ヒープが断片化され、パフォーマンスのボトルネックが発生することがあります。 通常、LFH は、16 KB を超える割り当てが行われると断片化されます。
この更新プログラムは、オブジェクトのサイズが 16 KB 未満の場合にのみ Windows LFH ヒープを使用するように、これらの固定型オブジェクト割り当ての Analysis Services の動作を変更します。 オブジェクトのサイズが 16 KB を超える場合、Analysis Services は代わりに Analysis Services ヒープ実装を使用します。 Analysis Services ヒープの実装は、LFH ヒープよりも遅く実行される可能性があります。 ただし、この断片化の問題は発生しません。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。