ウォームキャッシュよりもコールドキャッシュで高速に実行されるMDXクエリがあります。
SSASを再起動した後に同じMDXクエリを実行した場合、14秒かかります。その後、同じステートメントを実行するのに50秒かかります。
サーバーに負荷はなく、多くのRAMが使用可能でデフォルトのSSASメモリ設定です。
なぜそうなるのか、私には考えがありません。
SSRSレポートからのMDXトレースステートメント:
SELECT
NON EMPTY
{
[Measures].[Total GP %]
,[Measures].[Trading GP %]
,[Measures].[Closing Stock Value]
,[Measures].[Opening Stock Value]
,[Measures].[Trading GP]
,[Measures].[Total GP]
,[Measures].[Purchases Value]
,[Measures].[Shortage Value]
,[Measures].[Adjustments Value]
,[Measures].[Wastage Value]
,[Measures].[Sales Value]
} ON COLUMNS
,NON EMPTY
{
[Item].[Item Code].[Item Code].ALLMEMBERS
*
[Item].[Item Description].[Item Description].ALLMEMBERS
}
DIMENSION PROPERTIES
MEMBER_CAPTION
,MEMBER_UNIQUE_NAME
ON ROWS
FROM
(
SELECT
Filter
(
[Item].[Item Name].[Item Name].ALLMEMBERS
,
Instr
(
[Item].[Item Name].CurrentMember.Properties('Member_Caption'),@ItemItemName
)
> 0
) ON COLUMNS
FROM
(
SELECT
StrToSet
(@ItemGroupDescription2
,CONSTRAINED
) ON COLUMNS
FROM
(
SELECT
StrToSet
(@ItemGroupDescription
,CONSTRAINED
) ON COLUMNS
FROM
(
SELECT
StrToSet
(@BranchBranchName
,CONSTRAINED
) ON COLUMNS
FROM
(
SELECT
StrToSet
(@BranchStoreCategory
,CONSTRAINED
) ON COLUMNS
FROM
(
SELECT
StrToSet
(@BranchRegion
,CONSTRAINED
) ON COLUMNS
FROM
(
SELECT
StrToSet
(@BranchCountry
,CONSTRAINED
) ON COLUMNS
FROM
(
SELECT
StrToSet
(@PeriodPeriodWeek
,CONSTRAINED
) ON COLUMNS
FROM
(
SELECT
StrToSet
(@PeriodPeriodYear
,CONSTRAINED
) ON COLUMNS
FROM [DWH]
)
)
)
)
)
)
)
)
)
WHERE
(
IIF
(
StrToSet(@PeriodPeriodYear,CONSTRAINED).Count = 1
,StrToSet
(@PeriodPeriodYear
,CONSTRAINED
)
,[Period].[Period Year].CurrentMember
)
,IIF
(
StrToSet(@PeriodPeriodWeek,CONSTRAINED).Count = 1
,StrToSet
(@PeriodPeriodWeek
,CONSTRAINED
)
,[Period].[Period Week].CurrentMember
)
,IIF
(
StrToSet(@BranchCountry,CONSTRAINED).Count = 1
,StrToSet
(@BranchCountry
,CONSTRAINED
)
,[Branch].[Country].CurrentMember
)
,IIF
(
StrToSet(@BranchRegion,CONSTRAINED).Count = 1
,StrToSet
(@BranchRegion
,CONSTRAINED
)
,[Branch].[Region].CurrentMember
)
,IIF
(
StrToSet(@BranchStoreCategory,CONSTRAINED).Count = 1
,StrToSet
(@BranchStoreCategory
,CONSTRAINED
)
,[Branch].[Store Category].CurrentMember
)
,IIF
(
StrToSet(@BranchBranchName,CONSTRAINED).Count = 1
,StrToSet
(@BranchBranchName
,CONSTRAINED
)
,[Branch].[Branch Name].CurrentMember
)
,IIF
(
StrToSet(@ItemGroupDescription,CONSTRAINED).Count = 1
,StrToSet
(@ItemGroupDescription
,CONSTRAINED
)
,[Item].[Group 1 Description].CurrentMember
)
,IIF
(
StrToSet(@ItemGroupDescription2,CONSTRAINED).Count = 1
,StrToSet
(@ItemGroupDescription2
,CONSTRAINED
)
,[Item].[Group 2 Description].CurrentMember
)
)
CELL PROPERTIES
VALUE
,BACK_COLOR
,FORE_COLOR
,FORMATTED_VALUE
,FORMAT_STRING
,FONT_NAME
,FONT_SIZE
,FONT_FLAGS;
<Parameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-Microsoft-com:xml-analysis">
<Parameter>
<Name>PeriodPeriodYear</Name>
<Value xsi:type="xsd:string">[Period].[Period Year].&[2014]</Value>
</Parameter>
<Parameter>
<Name>PeriodPeriodWeek</Name>
<Value xsi:type="xsd:string">[Period].[Period Week].&[52]</Value>
</Parameter>
<Parameter>
<Name>BranchBranchName</Name>
<Value xsi:type="xsd:string">[Branch].[Branch Name].&[Test Branch]</Value>
</Parameter>
<Parameter>
<Name>BranchCountry</Name>
<Value xsi:type="xsd:string">[Branch].[Country].[All]</Value>
</Parameter>
<Parameter>
<Name>BranchStoreCategory</Name>
<Value xsi:type="xsd:string">[Branch].[Store Category].&[Test Cat]</Value>
</Parameter>
<Parameter>
<Name>BranchRegion</Name>
<Value xsi:type="xsd:string">[Branch].[Region].[All]</Value>
</Parameter>
<Parameter>
<Name>ItemGroupDescription</Name>
<Value xsi:type="xsd:string">[Item].[Group 1 Description].[All]</Value>
</Parameter>
<Parameter>
<Name>ItemGroupDescription2</Name>
<Value xsi:type="xsd:string">[Item].[Group 2 Description].[All]</Value>
</Parameter>
<Parameter>
<Name>ItemItemName</Name>
<Value xsi:type="xsd:string"></Value>
</Parameter>
</Parameters>
MDXStudioを介したperfmonカウンターは次のとおりです。
Cold cache execution
Time : 5 sec 125 ms
Calc covers : 0
Cells calculated : 24843
Sonar subcubes : 7700
NON EMPTYs : 3824
Autoexists : 42
EXISTINGs : 3824
SE queries : 3833
Flat cache insert : 0
Cache hits : 11513
Cache misses : 11
Cache inserts : 1
Cache lookups : 11524
Memory Usage KB : 98324
Warm cache execution
Time : 41 sec 906 ms
Calc covers : 0
Cells calculated : 24843
Sonar subcubes : 7698
NON EMPTYs : 3824
Autoexists : 42
EXISTINGs : 3824
SE queries : 3825
Flat cache insert : 0
Cache hits : 11516
Cache misses : 0
Cache inserts : 0
Cache lookups : 11516
Memory Usage KB : -53232
Percent cold caches :0.00%
Percent warm caches :100.00%
SSASのバージョンは何ですか?古いバージョンのSSAS数式キャッシュは、クエリで広範囲に使用する副選択を含むクエリを適切にキャッシュしません。
詳細はここで読むことができます: http://blog.crossjoin.co.uk/2013/08/07/subselects-and-formula-engine-caching-in-ssas-2012/