Danjo's two cents NAV, Powershell, Android, C#, Lync, Win8, …

30Okt/120

Dynamics Technical Airlift – Das SQL-Statement hinter der Query

Während meines Vortrages habe ich ein SQL-Statement gezeigt, welches mit dem SQL-Profiler während der Laufzeit einer Query aufgezeichnet wurde.

Hierbei handelt es sich um eine Query, welche das selbe Ergebnis liefert wie der TOP-10-Debitoren-Report. Die Query benötigt gerade in großen Datenbank merklich weniger Zeit.

Hier noch einmal das SQL-Statement zum nachlesen:

SELECT TOP (10) ISNULL("Customer"."No_",@0) AS "No",ISNULL("Customer"."Name",@1) AS "Name",ISNULL(SUM("SUB$Customer$Sales (LCY)"."Sales (LCY)$Cust_ Ledger Entry$SUM$Sales (LCY)"),@3) AS "Sum_Sales_LCY",ISNULL(SUM("SUB$Customer$Balance (LCY)"."Balance (LCY)$Detailed Cust_ Ledg_ Entry$SUM$Amount (LCY)"),@5) AS "Sum_Balance_LCY" FROM "Demo Database NAV (7-0)"."dbo"."CRONUS AG$Customer" AS "Customer" WITH(READUNCOMMITTED)

OUTER APPLY (SELECT TOP (1) ISNULL(SUM("Sales (LCY)$Cust_ Ledger Entry"."Sales (LCY)"),@2) AS "Sales (LCY)$Cust_ Ledger Entry$SUM$Sales (LCY)" FROM "Demo Database NAV (7-0)"."dbo"."CRONUS AG$Cust_ Ledger Entry" AS "Sales (LCY)$Cust_ Ledger Entry" WITH(READUNCOMMITTED)  WHERE ("Sales (LCY)$Cust_ Ledger Entry"."Customer No_"="Customer"."No_")) AS "SUB$Customer$Sales (LCY)"

OUTER APPLY (SELECT TOP (1) ISNULL(SUM("Balance (LCY)$Detailed Cust_ Ledg_ Entry"."Amount (LCY)"),@4) AS "Balance (LCY)$Detailed Cust_ Ledg_ Entry$SUM$Amount (LCY)" FROM "Demo Database NAV (7-0)"."dbo"."CRONUS AG$Detailed Cust_ Ledg_ Entry" AS "Balance (LCY)$Detailed Cust_ Ledg_ Entry" WITH(READUNCOMMITTED)  WHERE ("Balance (LCY)$Detailed Cust_ Ledg_ Entry"."Customer No_"="Customer"."No_")) AS "SUB$Customer$Balance (LCY)"

ORDER BY "Sales_LCY" DESC,"No" ASC OPTION(OPTIMIZE FOR UNKNOWN, FAST 50, FORCE ORDER, LOOP JOIN)

Dies ist auch ein schönes Beispiel wie die Query im Hintergrund mit verschachtelten Abfragen, der TOP-Klausel und den SQL eigenen Funktionen wie SUM arbeitet.

The following two tabs change content below.
Danjo

Danjo

Technical Engineer bei TSO-DATA Nürnberg GmbH
Daniel is working as a developer for Microsoft Dynamics NAV since 2007.
Danjo

Neueste Artikel von Danjo (alle ansehen)

Kommentare (0) Trackbacks (0)

Zu diesem Artikel wurden noch keine Kommentare geschrieben.


Kommentar verfassen

Trackbacks are disabled.

%d Bloggern gefällt das: