Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

MDX-Abfrage läuft immer in Timeout - MDX optimieren

Hier werden alle Data Warehouse-Themen im Microsoft-Umfeld behandelt...

MDX-Abfrage läuft immer in Timeout - MDX optimieren

Beitragvon MasterOfDesaster » Do 11. Feb 2016, 10:42

Hallo zusammen,

also vorneweg, ich bin jetzt nicht unbedingt der MDX-Crack, daher die Frage. Ich hab von eine Query die auf der kleineren "Modelebene" funktioniert.

Wenn ich das alles jetzt aber auf die Einheiten-Ebene runterbrechen will, dann läuft das alles immer in ein Timeout nach 2 Stunden.
Könnte man die Query evtl. noch irgendwo optimieren?

Code: Alles auswählen
with member [Measures].[QtyTotal] as [Measures].[QtyInWarranty] + [Measures].[QtyInExtension]
Member [Measures].[QtyInWarrantyLastDayOfMonth] AS
(
      [Dim Calendar].[Calendar].CurrentMember.LASTCHILD
      ,[Measures].[QtyInWarranty]
)
Member [Measures].[QtyInExtensionLastDayOfMonth] AS
(
   [Dim Calendar].[Calendar].CurrentMember.LASTCHILD
   ,[Measures].[QtyInExtension]
)
SELECT
{   [Measures].[QtyInWarrantyLastDayOfMonth],
   [Measures].[QtyInExtensionLastDayOfMonth],
   [Measures].[QtyInWarranty],
   [Measures].[QtyInExtension],
   [Measures].[QtyStdIn],
   [Measures].[QtyStdOut],
   [Measures].[QtyExtIn],
   [Measures].[QtyExtOut], [Measures].[QtyTotal]} on 0,
Filter(NONEMPTY(CROSSJOIN(
                     {[v Dim Unit Model 4IB].[Id Unit].[Id Unit].members},
                     {[Dim Country].[Id Country].[Id Country].members},
                     {[Dim Calendar].[Calendar].[Id Calendar Month].members}
                  ),
               [Measures].[QtyTotal]
            ),
            [Measures].[QtyTotal] > 0) on 1
FROM [InstalledBaseCS_Serial]
WHERE [Dim Calendar].[Year].&[2015]

Vielen Dank für die Unterstützung.

Armin
MasterOfDesaster
 
Beiträge: 3
Registriert: Do 11. Feb 2016, 10:35

Re: MDX-Abfrage läuft immer in Timeout - MDX optimieren

Beitragvon Micha » Fr 12. Feb 2016, 11:17

Hallo Armin,

ich bin jetzt mein MDX-Experte, aber hast Du mal versucht das Ganze in den SQL Profiler zu schicken?

Gruß,
Micha
Micha
 
Beiträge: 129
Registriert: So 3. Nov 2013, 12:13

Re: MDX-Abfrage läuft immer in Timeout - MDX optimieren

Beitragvon MasterOfDesaster » Do 18. Feb 2016, 15:28

Hallo zusammen,

bin zwar immer noch nicht am Ende meiner Lösung angekommen. Aber es wird langsam :lol:

Momentan komme ich z.B. auf so ein Ergebnis für ein Model mit den dazugehörigen Units:
Bild
Mir würde es aber reichen, wenn ich davon auch nur die gelb markierten Lines kriege. Also fehlt mir wohl nur noch irgendwo der Filter auf QtyTotal>0

Meine Abfrage dazu sieht so aus:
Code: Alles auswählen
WITH
  MEMBER [Measures].[QtyTotal] AS
    [Measures].[QtyInWarranty] + [Measures].[QtyInExtension]
SELECT
  NON EMPTY
    {
      [Measures].[QtyStdOut]
     ,[Measures].[QtyInExtension]
     ,[Measures].[QtyStdIn]
     ,[Measures].[QtyInWarranty]
     ,[Measures].[QtyTotal]
    } ON COLUMNS
 ,NON EMPTY
    {
      NonEmpty
      (
          [DimModel].[ModelNoShort].[ModelNoShort].ALLMEMBERS
        *
          [DimModel].[ModelUnitMapping].[Id Unit].ALLMEMBERS
       ,[Measures].[QtyTotal]
      )
    } ON ROWS
FROM
(
  SELECT
    {
      [DimModel].[ModelUnitMapping].[Model No Short].&[ABAB]
    } ON COLUMNS
  FROM
  (
    SELECT
      {[Dim Calendar].[Calendar].[Month Name4report].&[2015/01]} ON COLUMNS
    FROM [ModelCalculation]
  )
)
WHERE
  [Dim Calendar].[Calendar].[Month Name4report].&[2015/01];



Könnte mir hierbei noch jemand helfen?

Danke

Armin
Dateianhänge

20160218_screenshot05.jpg [ 21.23 KiB | 4338-mal betrachtet ]

MasterOfDesaster
 
Beiträge: 3
Registriert: Do 11. Feb 2016, 10:35

Re: MDX-Abfrage läuft immer in Timeout - MDX optimieren

Beitragvon Yellow » Mo 22. Feb 2016, 13:25

Hallo MasterOfDesaster,

mit MDX Studio gibt es ein gutes Tool um MDX Queries zu analysieren: https://www.sqlbi.com/tools/mdx-studio/.

-yellow
Yellow
 
Beiträge: 77
Registriert: Do 8. Mai 2014, 16:46

Re: MDX-Abfrage läuft immer in Timeout - MDX optimieren

Beitragvon MasterOfDesaster » Mo 22. Feb 2016, 15:11

Hi Yellow,

vielen Dank für die Info - aber bei dem MDX-Studio bin ich auch schon gelandet.
Allerdings komme ich damit auch nicht weiter, wie ich die richtigen Filterkriterien einbinden kann.
MasterOfDesaster
 
Beiträge: 3
Registriert: Do 11. Feb 2016, 10:35


Zurück zu Microsoft Data Warehouse

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: