Performance Tuning für Administratoren

ID: 
5
Seminar-Level: 
Fortgeschritten
Seminar-Typ: 
Technisches Seminar
Dauer: 
3 Tag(e)
Zielgruppe: 
Datenbank-Administratoren, Datenbank-Entwickler, Entwickler
Beschreibung: 
Das Seminar beschreibt die Möglichkeiten der "externen Optimierung", also einer Optimierung des SQL Server Systems, ohne daß Eingriffe in die Anwendungslogik vorgenommen werden. Gegenstand des ersten Blocks – "Überwachung" - ist die Verwendung von integrierten OS- und SQL-Werkzeugen zum Performance-Monitoring. Im Rahmen dieses Themen-Blocks werden neben den Werkzeugen auch die Interna von Windows Speichermanagement und SQLOS (das "SQL Server Betriebsystem") behandelt. Zudem geht es um wichtige Kennzahlen, die eine Einschätzung der Performance ermöglichen. Ein besonderer Punkt ist hier die Messung der SAN-Performance aus der Sicht des Hosts mit Hilfe des Werkzeugs SQLIO. Der zweite – kleinere - Block dreht sich um die wichtigsten Möglichkeiten, die physische Implementierung eines SQL Systems effektiv zu verbessern.
Seminar-Ziel: 
Die Teilnehmer lernen, den Health-State des SQL Server Systems in Bezug auf die Performance zu bewerten und zu beobachten. Hierbei findet auch eine Abgrenzung zu den anderen Layern innerhalb des Anwendungs-Stacks statt.
Inhalt: 

Interna

  • Windows Speichermanagement, Threading und SQL Server Operating System
  • Physischer Speicher und Virtual Address Space
  • Unterschiede zwischen 32bit- und 64bit-Systemen
  • Management und Verwendung von Speicher (Threading, Scheduling, AWE, NUMA)
  • SQL-interne Aufteilung des verwendeten Speichers (Buffer Cache, MemToLeave)

Aufzeichnen von OS- und SQL-Countern

  • Erstellen von Baselines und Messen akuter Engpässe mit "Perfmon"
  • Analyse von Traces: Eingrenzen eines Performance-Problems, Korrelationen zwischen Countern, Trend-Analyse
  • Verfahren zum Laden, Visualisieren, Aggregieren und Speichern von Trace-Files

Messen von DAS- und SAN-Performance

  • Einführung in SQLIO
  •  Definition von Testläufen (Parametrisierung von SQLIO, Erstellen von Batches)
  • Entwickeln von Werkzeugen zum Sammeln der Test-Ergebnisse
  • Bewertung der SAN-Performance (IOPS, MB/s, Latenz, RW/s)
  • Überblick: 3rd-Party-Tools zur IO-Messung

Überblick: SQL Server Monitoring Tools

  • SQL Event-Handling mit SQL Server Profiler, DBCC, Alerts und eigenen Anwendungen
  • Dynamic Management Views
  • Performance Reports, Performance Dashboard und Custom Performance Reports
  • Management Data Warehouse (ehemals Performance Data Warehouse)
  • Überblick: 3rd-Party Tools zum SQL Server Monitoring

Verwenden von SQL Server Profiler

  • Aufzeichnen von Traces: Best Practices - Session Replay
  • Debugging und Lastsimulation
  • Korrelation zwischen System-Countern und SQL-Events: Laden von System-Traces in Profiler
  • Auswerten von Profiler-Traces mit SQL-Befehlen

Verwenden von Dynamic Management Views (DMVs)

  • Einführung in das Konzept der DMVs
  • Die wichtigsten DMVs zur Echtzeit-Überwachung von Sessions, Memory, Speicherplatz, Sperren, Wait-Types und Threads

Konfigurations-Einstellungen für eine SQL Instanz

  • Memory-Management: Service-Start-Parameter und Speicher-Limits
  • CPU- und IO-Affinität
  • Wichtige performance-relevante Einstellungen: AWE-Switch, MaxWorkerThreads, Fiber-Switch etc.)
  • Binden von IP-Connections und CPUs
  • Verwenden von Resource Governor
  • Datei-Verwaltung der System-Datenbanken

Optimieren der physischen Implementierung

  • Verwenden von Dateien, Dateigruppen und Partitioning
  • Best Practices: Beschleunigen von OLTP- und DSS-Systemen
  • Komprimieren von Daten und Dateien
  • Einführung in Filestreaming und Blob-Speicherung
Voraussetzung: 

Gute Kenntnisse in System-Administration. Grundlegende Kenntnisse in RDBMS.

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