次のクエリは、実行に 1 ~ 2 秒かかります。
SELECT { [Measures].[Premium], [Measures].[Revenue] }
ON COLUMNS, NON EMPTY { (
[Insured].[PK Insured].[PK Insured].ALLMEMBERS
* [Insured].[Named Insured].[Named Insured].ALLMEMBERS
* [Producer].[Name].[Name].ALLMEMBERS
* [Producer].[PK Producer].[PK Producer].ALLMEMBERS
* [Coverage Category].[Name].[Name].ALLMEMBERS
* [Company].[Name].[Name].ALLMEMBERS
* [Company].[PK Company].[PK Company].ALLMEMBERS
* [Market Ownership Group].[PK Market Ownership Group].[PK Market Ownership Group].ALLMEMBERS
* [Agency Ownership Group].[PK Agency Ownership Group].[PK Agency Ownership Group].ALLMEMBERS
* [Company].[Type].[Type].ALLMEMBERS
) }
ON ROWS FROM ( SELECT ( { [Marketing Rep].[PK Non Broker].&[820676] } )
ON COLUMNS FROM ( SELECT ( [Expiration Date].[Date Hierarchy].[Date].&[2013-08-27T00:00:00] : [Expiration Date].[Date Hierarchy].[Date].&[2013-11-25T00:00:00] )
ON COLUMNS FROM ( SELECT ( { [Policy].[Status].&[PIF], [Policy].[Status].&[BIF] } )
ON COLUMNS FROM [CrumpCRC])))
WHERE ( [Policy].[Status].CurrentMember, [Marketing Rep].[PK Non Broker].&[820676] )
日付ディメンション ( Expiration Date
) を追加すると、クエリの実行に数分かかり、メモリ過負荷エラーが返されることもあります。これは問題です:
SELECT { [Measures].[Premium], [Measures].[Revenue] }
ON COLUMNS, NON EMPTY { (
[Insured].[PK Insured].[PK Insured].ALLMEMBERS
* [Insured].[Named Insured].[Named Insured].ALLMEMBERS
* [Producer].[Name].[Name].ALLMEMBERS
* [Producer].[PK Producer].[PK Producer].ALLMEMBERS
* [Coverage Category].[Name].[Name].ALLMEMBERS
* [Company].[Name].[Name].ALLMEMBERS
* [Company].[PK Company].[PK Company].ALLMEMBERS
* [Market Ownership Group].[PK Market Ownership Group].[PK Market Ownership Group].ALLMEMBERS
* [Agency Ownership Group].[PK Agency Ownership Group].[PK Agency Ownership Group].ALLMEMBERS
* [Company].[Type].[Type].ALLMEMBERS
* [Expiration Date].[Date Hierarchy].[Date].ALLMEMBERS
) }
ON ROWS FROM ( SELECT ( { [Marketing Rep].[PK Non Broker].&[820676] } )
ON COLUMNS FROM ( SELECT ( [Expiration Date].[Date Hierarchy].[Date].&[2013-08-27T00:00:00] : [Expiration Date].[Date Hierarchy].[Date].&[2013-11-25T00:00:00] )
ON COLUMNS FROM ( SELECT ( { [Policy].[Status].&[PIF], [Policy].[Status].&[BIF] } )
ON COLUMNS FROM [CrumpCRC])))
WHERE ( [Policy].[Status].CurrentMember, [Marketing Rep].[PK Non Broker].&[820676] )
タスクマネージャーでメモリの動作を監視していました。最初のクエリを実行すると、メモリに特別なことは何も起こりませんが、2番目のクエリを実行すると(日付の薄暗いものが含まれます)、メモリが2GBから8GBにジャンプします。また、列 (日付を含む) の削除を開始すると、クエリの実行が速くなり、メモリ消費量も減少し始めることに気付きました。新しい列を追加するたびに、クエリの実行に必要な操作の数が増えるような気がします。
date と他の dims の違いは、date が階層として設定されていることです。ホバー時に年/月属性に表示される警告メッセージも含めました
私が何を間違えたのか分かりますか?