SQL Server Performance Ratgeber

Inhaltsverzeichnis

0. Einleitung
0.1 Warum dieses Buch?
0.2 Für wen ist dieses Buch gedacht?
0.3 Erforderliche Kenntnisse
0.4 Aufbau des Buches
0.5 Schreibweisen
0.6 Website zum Buch
0.7 Über den Autor

Teil A - Optimierung für Administratoren

1. Vorbereitung der Systemumgebung
1.1 Hardwareumgebung
1.1.1 Prozessor
1.1.2 Hauptspeicher
1.1.3 Festplatten
1.1.4 Netzwerk
1.2 Betriebssystem
1.2.1 Auswahl des richtigen Betriebssystems
1.2.2 Konfiguration des Betriebssystems
1.3 Datenbank-Management-System
1.3.1 Auswahl der richtigen Edition
1.3.2 Installation
1.3.3 Konfiguration
1.4 Zusammenfassung

2. Einrichten und Warten von Datenbanken
2.1 Anlegen und Konfigurieren einer Datenbank
2.1.1 Datenbank- und Protokolldatei
2.1.2 Sonstige Konfigurationseinstellungen
2.2 Regelmäßige Wartungsarbeiten
2.2.1 Datenbank verkleinern
2.2.2 Indizes aktuell halten
2.2.3 Sicherungen erstellen
2.2.4 Statistiken aktualisieren
2.2.5 Prüfung der Systemauslastung
2.3 Ressourcenkontrolle mit dem Resource Governor
2.3.1 Ressourcenpools und Arbeitsauslastungsgruppen
2.3.2 Klassifizierfungsfunktionen erstellen und zuordnen
2.4 Zusammenfassung

Teil B - Optimierung für Designer & Architekten

3. Modellierung einer Datenbank
3.1 Normalisierung & Denormalisierung
3.1.1 Die ersten 3 Normalformen
3.1.2 Bewusste Denormalisierung
3.2 Datentypen sinnvoll nutzen
3.2.1 Unicode oder nicht?
3.2.2 Alphanumerische Datentypen
3.2.3 Numerische Datentypen
3.2.4 Binäre Datentypen
3.2.5 Sonstige Datentypen
3.2.6 Spalten mit geringer Dichte
3.2.7 Identitätsspezifikation oder Uniqueidentifier?
3.3 Zusammenfassung

4. Indizes
4.1 Grundlegende Funktionsweise von Indizes
4.2 Realisierung von Indizes bei SQL Server
4.3 Besondere Index-Arten
4.3.1 Kombinierte Indizes
4.3.2 Abdeckende Indizes
4.3.3 Gefilterte Indizes
4.3.4 Indizierte Sichten
4.4 Index oder nicht?
4.4.1 Indexhinweise bei Anzeige des Ausführungsplans
4.4.2 Dynamische Management-Sichten zur Erkennung fehlender Indizes
4.4.3 Dynamische Management-Sichten zur Erkennung überflüssiger Indizes
4.4.4 Indexempfehlungen des Datenbankoptimierungsratgebers
4.4.5 Gruppiert oder nicht?
4.5 Volltextindizes
4.5.1 Funktionsweise von Volltextindizes
4.5.2 Verwendung von Volltextindizes
4.5.3 Anlegen eines Volltextindexes
4.6 Zusammenfassung

5. Optimale Verteilung der Daten
5.1 Manuelle Aufteilung von Datenzeilen
5.1.1 Archivierung von Altdaten
5.1.2 Historisierung
5.2 Partitionierung
5.2.1 Erstellen einer Partitionierungsfunktion
5.2.2 Erstellen eines Partitionierungsschemas
5.2.3 Verwenden von Partitionen
5.2.4 Hinzufügen und Entfernen von Partitionen
5.2.5 Verschieben von Partitionen
5.3 Zusammenfassung

Teil C - Optimierung für Entwickler

6. Performance-Grundlagen für Entwickler
6.1 Interne Verarbeitung von Abfragen
6.1.1 Ablauf der Abfrageverarbeitung
6.1.2 Ausführungspläne
6.1.3 Abfragestatistiken
6.1.4 Tabellen- und Indexstatistiken
6.1.5 Wiederverwendung von Ausführungsplänen
6.1.6 Parametrisierung von Abfragen
6.2 Sperren und Transaktionen
6.2.1 Locking und Blocking
6.2.2 Transaktionen
6.2.3 Isolationsstufen (Isolation Level)
6.2.4 Tabellenhinweise
6.2.5 Deadlocks
6.3 Zusammenfassung

7. Abfrageoptimierung
7.1 Optimierung einzelner Abfragen
7.1.1 Vollqualifizierte Bezeichner verwenden
7.1.2 Datenvolumen so schnell wie möglich reduzieren
7.1.3 Indexverwendung ermöglichen
7.1.4 Unterabfragen vermeiden
7.1.5 Ausführungspläne beeinflussen
7.1.6 Parametrisierung von Abfragen
7.2 Abfrage-übergreifende Optimierung
7.2.1 Sperren und Transaktionen
7.2.2 Abfragen zusammenfassen
7.2.3 Zwischenergebnisse speichern
7.3 SQL-Cursor
7.3.1 Funktionsweise eines SQL Cursor
7.3.2 Optimierungsmöglichkeiten
7.3.3 Sinnvolle Verwendung eines SQL Cursor
7.4 Zusammenfassung

8. Optimierung des Datenzugriffs
8.1 Datenzugriffstechnologien
8.1.1 Microsoft Data Access Components
8.1.2 SQL Native Client
8.1.3 ADO.NET
8.2 Varianten des Datenzugriffs unter .NET
8.2.1 ADO.NET DataReader & Execute
8.2.2 ADO.NET Datasets
8.2.3 LINQ to SQL
8.2.4 ADO.NET Entity Framework
8.2.5 Sonstige O/R-Mapper
8.3 Datenbanklogik auf den Server verlagern
8.3.1 Sichten
8.3.2 Funktionen und gespeicherte Prozeduren
8.3.3 SQL Server .NET CLR
8.4 Zusammenfassung

Teil D - Optimieren einer bestehenden Datenbank(-anwendung)

9. Strukturierte Performance-Analyse
9.1 Überblick des Gesamtablaufs
9.2 Allgemeine Prüfung des Systems
9.3 Zusammenfassung

10. Schwachstellen identifizieren durch Performancetests
10.1 Der klassische Ansatz: Performance-Counter und Dynamische Management Views
10.2 SQL Server Profiler & Datenbankoptimierungsratgeber
10.3 Performance Data Collector und Performance Data Warehouse
10.4 Zusammenfassung

11. Durchführung der Optimierung
11.1 Maßnahmen definieren
11.2 Gewichtung der Optimierungsansätze
11.3 Gezielt optimieren und Erfolge messen
11.4 Zusammenfassung

Anhang

Anhang A - Tools & Features
Anhang A.1 - Performance-Tools von Windows und SQL Server
Anhang A.2 - Kostenfreie Messwerkzeuge und Optimierungstools
Anhang A.3 - Kommerzielle Tools von Drittanbietern

Anhang B - Informationsquellen im Internet
Anhang B.1 - Websites zum Buch
Anhang B.2 - Websites zur SQL Server Performance
Anhang B.3 - Allgemeine Websites zum SQL Server
Anhang B.4 - Newsgroups zum SQL Server

Anhang C - Checklisten
Anhang C.1 - Checkliste für Administratoren
Anhang C.2 - Checkliste für Designer & Architekten
Anhang C.3 - Checkliste für Entwickler
Anhang C.4 - Checkliste zum Optimieren einer bestehenden Anwendung

Anhang D - Glossar

Anhang E - Index


eMail: rpanther@PantherComputing.de

Beachten Sie auch unsere Web-AGBs !