Objektrelationales Mapping mit JPA

Slides:



Advertisements
Ähnliche Präsentationen
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Advertisements

Objektrelationales Mapping mit JPA
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
Prof. Dr. Dr. h.c. mult. August-Wilhelm Scheer
JPQL Java Persistence Query Language
JDataSet & Persistenz Layer
SQL Server 2005 Übersicht für Entwickler Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Entity Mapping Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Testing Jonas Bandi Simon Martinelli.
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA
Objektrelationales Mapping mit JPA Ausblick Jonas Bandi Simon Martinelli.
Eine Semesterarbeit von Sebastian Galenski (2. Semester – WWI 00 B) SQL Query Result Caching Oder wie man häufig gestellte Datenbankabfragen performanter.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Modellierung der Zugriffslogik auf Datenbanktabellen Software Component Technology for Distributed Applications Andreas Fink.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
1 WS 2012 Software-Engineering II Aspektorientierung.
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
Implementierung und Managment unternehmenskritischer Anwendungen insbesondere Performance und Skalierbarkeit EJB basierter Anwendungen WebLogic, das Herz.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
My Job Application Manager
Herzlich Willkommen… welcome… soyez la bienvenue….
Working With Persistent Objects
Wir bauen uns eine Webapplikation!
Grundlagen der sicheren PHP Programmierung Parametermanipulationen und Injektionslücken Stefan Esser Hardened-PHP Project.
Microsoft Windows Azure
Robotron – Titel der Präsentation Martin Kunze,
Webservice Grundlagen
SharePoint 2010 for Information Architects
EJB-Applikationsserver
Tools und Verfahren Steffen Krause Technologieberater Microsoft Deutschland GmbH
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
HPI Bachelorprojekt Scalable EMF Vorstellung der Designdokumente Strukturen und Abläufe 1. März 2010.
XML-Query. Übersicht Was ist XML-Query? Vergleich RDB XML-Dokument Syntaktisches und Use-Cases Kritik und Diskussion.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Servlets Servlets und relevantes API Servlets & SQL via JDBC Implementierungs - Spezifika Architektur Überblick Vertikaler Prototyp / Spezifikation.
Referent: Stephan Metzler
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
XML und Datenbanken © 2006 Markus Röder
Raid-Planer Überarbeitung Darstellung aktueller Probleme und Lösungsansätze.
Hibernate (OR-Mapping)
Designvorschläge für regionale Dashboards
Mind the Gap Die semantische Lücke zwischen Objekten und Relationen.
Vassil Dimov.  Was ist Blue Age  Eigenschaften  Möglichkeiten  Hello World (Beispiel)  Entity Creation(Beispiel)  Benefit.
Was spricht für EMC für SQL?
Data Warehousing Sommersemester Übung - Ulf Leser Jörg Hakenberg Mailingliste.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
EJB Architektur für große Web - Applikationen Gerald Weber
Distributed Database Systems Parallele Datenbanksysteme von Stefan Schneider.
Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.
5 Memory Leaks, die auch in Ihrer.NET Anwendung sein könnten André Krämer Softwareentwickler, Trainer, Berater.
© 2004 softgate, Oracle 10g Überblick über Oracle 10g.
Application Infrastructure Technologies Extending OnPremise EAI to the Cloud Wilfried Mausz BSc. dataformers GmbH Lothar Mausz dataformers.
© 2012 TravelTainment Datenbankzugriffe in Java-Applikationen mit Hilfe des Spring Frameworks Simon Wirtz Seminarvortrag WS 13/14 Oktober 2013.
DOAG Regionaltreffen Trier/Saarland Verwendung von TopLink in J2EE Applikationen 09. September 2003 Marcus Keuper, Pfeil GmbH
Erfahrungen mit TopLink in einem Projekt Performance-Aspekte von TopLink Auszug aus einer Diplomarbeit 5. Oktober 2016.
1 Okt, 2015 Kapitel III: Tuningdaten&Dok-zum_Tuning (350_db2_Tuningdaten&docs_des Tunings) IBM DB2 for z/OS.
XML-Erweiterungen in ORDBMS Seminar: DBMS für spezielle Anwendungen Florian Brieler.
1 TopLink - flexible Persistenz im Oracle Application Server.
© 2014 VMware Inc. All rights reserved. Automatisierung und Verrechnung in einer IoT Cloud am Beispiel von Bosch Private Cloud Costing | Cloud Business.
Robotron – Titel der Präsentation Olaf Nowatzki Dresden,
Recent Magazine Ad.
Gewachsene Architektur Das kann nicht funktionieren!
 Präsentation transkript:

Objektrelationales Mapping mit JPA Performance Jonas Bandi Simon Martinelli

“Premature Optimization is the Root of all Evil.” - Donald Knuth “You can't control what you can't measure.” - Tom DeMarco

SQL Logging Logging des JPA-Providers z.B: in persistence.xml: Logging/Profiling Funktionalität der DB Logging/Profiling auf JDBC Ebene Log4jdbc (http://code.google.com/p/log4jdbc/) P6Spy (http://www.p6spy.com/) <property name="eclipselink.logging.level" value="FINE"/>

Minimizing Query Count Typischer Weise entstehen die ersten Persistenz bezogenen Performance Probleme aufgund der Anzahl Queries auf die DB Analyse Optimierung des Globalen Fetch Plans Optimierung des Fetch Plans auf Use-Case Ebene Caching in der Applikation (z.B. DAO, Manager) 2nd Level Cache / Query Cache “Reporting View” mit Constructor Expressions

Teure Queries Analyse, auch auf DB Ebene (Execution-Plan) Meist hilft das setzten eines Index in der DB Optimierung der Fetch-Strategie Optimierung von Queries Verwendung von Hints Verwendung von SQL-Queries

Named Queries Named Queries können vom JPA-Provider beim Deploy oder Startup-Zeitpunkt geparst und kompiliert werden. Das resultierende prepared Statement kann dann wiederverwendet werden.

Instanzierung und Marshalling Result Sets Objekte / Objekt-Graphen Statements In Typischen Anwendungen ist dies kaum ein Performance Problem. Objektinstanzierung ist um Grössenordnungen schneller als DB-Query Bei sehr grossen Datenmengen können Probleme entstehen aufgrund der Session Grösse (Identity- Map)

Constructor Expressions Erlaubt “Views” auf Daten, welche nicht den Entity-Strukturen entspricht.

Session Grösse Eine grosse Session kann zu Performance Problemen führen Out of Memory Garbage Collector Identity Map Typischerweise ein Problem in Batch Szenarien Frühe Erkennung während des Designs sinnvoll Anwendung einer anderen Persistenz Strategie Achtung: Session-Management sollte von Transktions-Steuerung getrennt behandelt werden!

Session Grösse Lösungsansätze Regelmässiges flush() und clear() Bulk-Statements in JPQL Direktes SQL über JDBC Proprietäre Mechanismen des JPA-Providers, z.B. Hibernate Stateless Session

Entity Caching Explizites Caching in der Applikation z.B. DAO, Business-Komponente, Application- Infrastruktur Lifetime kann explizit kontrolliert werden (z.B. Request, Conversation, Session, Application) Verwendung eines transparenten Caching Mechanismus (2nd Level Cache) Lernkurve! Oft beinahe “Black Magic”. Grösse, Invalidation, Transaction-Isolation ...

Query Caching Etliche JPA Providers ermöglichen das Caching von Query-Results. Ist nur in sehr seltenen Fällen sinnvoll Queries sind meist parametrisiert ... Invalidation und Read/Write Verhältnis