Alle,MDX-Abfrage-Optimierung - Legen Sie in SQL Tabelle
ich mit MDX-Abfragen nicht sehr vertraut bin, wenn Sie sind, die schnell offensichtlich mit dieser Frage werden lassen. Diese Abfrage wurde von einer Tableau-MDX-Abfrage modifiziert, die ich kopiert habe. Ich verwende die Abfrage mit einem verknüpften SSMS-Server, der in eine Tabelle eingefügt wird. Dies ist notwendig, weil ich die Daten abrufen kann. Das resultierende Dataset enthält viele Duplikat/Null-Spalten/Zeilen und führt häufig zu Sperrkonflikten. Kann diese Abfrage verbessert werden? Ich weiß, dass es keine ideale Möglichkeit ist, die Daten zu ziehen, aber es ist alles, was ich tun kann.
set @SQL = 'SELECT * INTO db_rpt.dbo.temptable1 from (select * from
openquery(server,''
WITH MEMBER [Measures].[LEVEL INSTANCE none:Date:qk - lev00]
AS ''''CASE WHEN IsEmpty([Dim Date].[Date].CurrentMember.MemberValue) OR [Dim Date].[Date].CurrentMember.MemberValue = null
THEN null
ELSE CDate([Dim Date].[Date].CurrentMember.MemberValue)
END''''
,SOLVE_ORDER = 127
SELECT
{[Measures].[METRIC1]
,[Measures].[METRIC2]
,[Measures].[METRIC3]
,[Measures].[METRIC4]
,[Measures].[METRIC5]
,[Measures].[METRIC6]
}
DIMENSION PROPERTIES HIERARCHY_UNIQUE_NAME ON COLUMNS ,
NON EMPTY (Hierarchize({DrilldownLevel({[Dim Employee].[GROUP1].[All]},,,INCLUDE_CALC_MEMBERS)})
,Hierarchize({DrilldownLevel({[Dim Employee].[Unique Emp Name].[All]},,,INCLUDE_CALC_MEMBERS)})
,Hierarchize({DrilldownLevel({[Dim Employee].[GROUP2].[All]},,,INCLUDE_CALC_MEMBERS)})
,Hierarchize({DrilldownLevel({[Dim Employee].[GROUP3].[All]},,,INCLUDE_CALC_MEMBERS)})
,Hierarchize({DrilldownLevel({[Dim Employee].[GROUP4].[All]},,,INCLUDE_CALC_MEMBERS)})
,Hierarchize({DrilldownLevel({[Dim Employee].[GROUP5].[All]},,,INCLUDE_CALC_MEMBERS)})) ON ROWS
FROM [Cube]
WHERE (StripCalculatedMembers(Filter( [Dim Date].[Date].[Date].AllMembers
,(([Measures].[LEVEL INSTANCE none:Date:qk - lev00] >= cdate(''''' + @date1 + '''''))
AND ([Measures].[LEVEL INSTANCE none:Date:qk - lev00] <= cdate(''''' + @date2 + ''''')))))
,[Dim QA Form Section].[System - Form].[Form].&[Group]&[Form1])'')) t1'
Wir sind von OpenQuery aufgrund von Sperrproblemen weggezogen und verwenden nun die gespeicherten CLR-Prozeduren https://olapextensions.codeplex.com/ – whytheq
@whytheq Thanks !, kann ich dies zur Auswahl in eine SQL-Tabelle verwenden? – yeahthisisrob
verwenden wir es zum Einfügen in temporäre Tabellen, z. 'INSERT IN # BLAHBLAH; EXEC ExecuteOLAP @Server, @Database, @ MDX; ' – whytheq