Performance Tuning für Entwickler

ID: 
4
Seminar-Level: 
Fortgeschritten
Seminar-Typ: 
Technisches Seminar
Dauer: 
4 Tag(e)
Zielgruppe: 
Datenbank-Administratoren, Datenbank-Entwickler, Entwickler
Beschreibung: 
In diesem Seminar werden Kenntnisse in den Interna des so genannten SQL OS (SQL Server Operating System) vermittelt. Teilnehmer lernen die Abläufe der Datenbank-Engine beim Speichern und Abrufen von Daten kennen. Aufbauend auf diesem Know-How werden Möglichkeiten aufgezeigt, das Design der Zugriffs-Logik und die internen Prozesse der Engine optimal aufeinander abzustimmen.
Seminar-Ziel: 
Die Teilnehmer werden in die Lage versetzt, die internen Abläufe der Datenbank-Engine im Hinblick auf Performance zu verstehen und zu verbessern.
Inhalt: 

Einführung in das SQL Server Operating System (SQLOS)

  • Die NUMA-Architektur
  • SQL Scheduler und Worker-Threads
  • Einführung in die Speicherverwaltung von SQL Server
  • Dimensionierung des Buffer Pools

Architektur der Datenspeicherung

  • Datei-Typen: Daten- und Protokoll-Dateien, Filestreams
  • Aufbau von Data-Pages und Data-Rows
  • Speichern von Daten in Index- oder Heap-Strukturen
  • Änderungen in Data Pages durch Datenmanipulation
  • Constraints und Index-Optionen
  • Änderungen in Index Data Pages durch Verwaltungs-Vorgänge

SQL Server Ausführungs-Pläne

  • Einführung in den Abfrage-Optimierer
  • Arbeiten mit Ausführungsplänen und Ausführungsoptionen
  • Analysieren von Ausführungsplänen
  • Schwerpunkt: JOIN-Typen (Nested Loop, Merge Join, Hash Join)
  • Parallelität in Abfragen

Verbessern der Abfrage-Performance

  • Werkzeuge - Statement Tuning und Rewriting
  • Best Practices: Verwenden von temporären Objekten
  • Best Practices: Erstellen von Indizes
  • Best Practices: Cursor-Refactoring
  • Best Practices: Bulk Load und Datenquellen-Sync
  • Verwenden von Hinweisen (Query Hints / Plan Hints)

Arbeiten mit Caches

  • Einführung in Object- und Statement-Caching
  • Autoparametrierung und erzwungene Parametrierung
  • Kompilierung und Rekompilierung
  • Verwalten von Cache-Objekten
  • Best Practice: Caching, Dynamisches SQL, Erkennen von Compilation Issues

Transaktionen, Konkurriende Zugriffe und Sperren

  • Einführung in Datenbank Transaktionen
  • Lock-Typen - Allgemeine und spezielle Lockmodes
  • Granularität und Dauer von Locks
  • Lock-Ressourcen
  • Typische Lock-Situationen verstehen und vermeiden
  • Deadlocks erkennen und vermeiden
  • Erhöhen der Parallelität durch Row-Versioning

Monitoring von SQL Statements und Ressourcen

  • Profiler: Aufzeichnen von SQL Traces
  • Profiler: Session Replay, Debugging und Lastsimulation
  • Profiler: Einbinden von System-Countern
  • Werkzeuge
  • Verwenden von integrierten Performance-Berichten
  • Langzeit-Analyse von Belastungen mit Performance Datawarehouse
Voraussetzung: 

Entwickler und Administratoren, die über gute Kenntnisse in Microsoft SQL Server oder einem anderen RDBMS verfügen.

Durchführung: 
Demonstration, Übung, Vortrag
Produkt: 
SQL Server - Alle Versionen