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 !