Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Compiled Queries: LINQ-Abfragen mit Pegasus-Stiefeln © msg systems ag, August 20121 Gordon Breuer IT Consultant & Software Engineer Travel & Logistics.

Ähnliche Präsentationen


Präsentation zum Thema: "Compiled Queries: LINQ-Abfragen mit Pegasus-Stiefeln © msg systems ag, August 20121 Gordon Breuer IT Consultant & Software Engineer Travel & Logistics."—  Präsentation transkript:

1 Compiled Queries: LINQ-Abfragen mit Pegasus-Stiefeln © msg systems ag, August Gordon Breuer IT Consultant & Software Engineer Travel & Logistics

2 © msg systems ag, August Compiled Queries Das Problem Die Theorie Demo! Die Inhalte

3 © msg systems ag, August Wo / Wie entsteht das Problem

4 © msg systems ag, August LINQ λ (Lambda) Expression- Tree SQL Wo und wie entsteht der Performance-Engpass? IEnumerable linq = from customer in db.Customer where customer.LastName.StartsWith("B") select customer; IQueryable lambda = db.Customer.Where(customer => customer.LastName.StartsWith("B")); Expression > bedingung = s => s.LastName.StartsWith("B"); IQueryable lambda = db.Customer.Where(bedingung); SELECT * FROM Customer WHERE LastName = 'B%'

5 © msg systems ag, August LINQ λ (Lambda) Expression- Tree SQL Wo und wie entsteht der Performance-Engpass? IEnumerable linq = from customer in db.Customer where customer.LastName.StartsWith("B") select customer; IQueryable lambda = db.Customer.Where(customer => customer.LastName.StartsWith("B")); Expression > bedingung = s => s.LastName.StartsWith("B"); IQueryable lambda = db.Customer.Where(bedingung); SELECT * FROM Customer WHERE LastName = 'B%'

6 © msg systems ag, August Compiled Queries als Lösung

7 © msg systems ag, August Verfügbar seit.NET 3.5 Namensraum System.Data.Linq Statische Klasse CompiledQuery Compile ( Expression >) Compiled Queries

8 © msg systems ag, August Parameter = Objekt-Kontext für den Datenzugriff Letzter Parameter (n) = Rückgabewert 2. - (n-1). Parameter = Optionale Übergabeparameter In.NET 3.5 und Silverlight: Überladungen für bis zu drei Übergabeparameter In.NET 4.0+: Überladungen für bis zu 15 Übergabeparameter Sollten mehr gebraucht werden: Helferklasse Compiled Queries

9 © msg systems ag, August Aufruf in instanziierten Klassen? Statischer Kontext! Instanzen vs. Statische Klassen

10 © msg systems ag, August Deutlicher Geschwindigkeitszuwachs bei oft aufgerufenen Abfragen Anfänglicher Overhead wirkt sich bei wenigen Aufrufen negativ auf die Performance aus. Höherer Speicherverbrauch durch Zwischenspeichern der Funktionen. Schlechtere Lesbarkeit des Quellcodes. Die Vorteile Die Nachteile Die Vor- und Nachteile im Überblick

11 © msg systems ag, August Alle Compiled Queries in einer eigenen statischen Klasse sammeln Es muss immer der gleiche Data- Kontext verwendet werden Das zurückgegebene one-time Enumerable in eine Liste umwandeln Tipps zur Verwendung

12 © msg systems ag, August Demos in Visual Studio

13 Vielen Dank für Ihre Aufmerksamkeit © msg systems ag, Mai Gordon Breuer IT Consultant // Software Engineer Telefon: Facebook:http://facebook.com/gordon.breuer Blog:http://gordon-breuer.de msg systems ag Robert-Bürkle-Straße Ismaning/München Telefon: Fax: eure


Herunterladen ppt "Compiled Queries: LINQ-Abfragen mit Pegasus-Stiefeln © msg systems ag, August 20121 Gordon Breuer IT Consultant & Software Engineer Travel & Logistics."

Ähnliche Präsentationen


Google-Anzeigen