Bei Einsatz des Datenbanksystem SQL Server 2008 stehen eine Fülle von Möglichkeiten zur Verfügung, um die Zugriffe des Datenbanksystems zu analysieren und zu optimieren.
Verwiesen sei dabei auf folgende Literatur:
Microsoft® SQL Server® 2008 Internals (Pro - Developer)
von Kalen Delaney, ISBN 978-0735626249
Inside Microsoft® SQL Server® 2008: T-SQL Programming (Pro-Developer)
von Itzik Ben-Gan, ISBN 978-0735626027
Wird SQL Server unter einem "normalen" Betriebssystem-Account ausgeführt, so MÜSSEN diesem folgende User-Privilegien zugewiesen werden:
Lock Pages in Memory
Perform Volume Maintenance Tasks
Die vom SQL Server verwendete Speichergröße kann nicht über den Taskmanager ermittelt werden, sondern z.B. über den Performance-Monitor "perfomon".
Das Transaktionsprotokoll sollte auf die schnellste Festplatte gelegt werden.
Die Datenbank sollte im Vorfeld auf die zu erwartende Größe konfiguriert werden.
Es sollten lieber manuell die Datenbankdateien vergrößert werden, nicht automatisch.
Für SOG ERP (VACOS) sollte der Server mit der Option "Optimize for AdHoc Queries" konfguriert sein.
Mit einer Enterprise-Edition von SQL Server können Tabellen in Indices partitioniert werden.
Für jede CPU sollte ein eigener TEMPDB-Datenbereich zur Verfügung stehen.
Jede Tabelle benötigt einen "Clustered Index".
Dieser sollte möglichst klein, und "stupide" aufsteigend vergeben werden.
Bei Einsatz einer SQL Server Enterprise-Edition können "filtered Indexes" auf Teilmengen der Daten angelegt werden.
Bei Einsatz einer SQL Server Enterprise-Edition können "indexed views" verwendet werden.
Bei Indextuning sollte geschaut werden:
Seit wann läuft der SQL Server (Muss lange laufen, damit Statistiken aktuell sind)
Auf welchen Tabellen fehlt ein Clustered Index?
Tip: Nicht verwendete Indexe löschen.
FragmentCount der Indexe checken ggf. Index Rebuild.
dm_db_missing_index: Relevant, wenn avg_user_impact > 80!
Ggf. Indices um Datenfelder erweitern, wenn dies Vorteile für Relationszugriffe bringt.
Ausgabe von IO-Statistiken zur aktuellen Query.
Ausgabe von QUERY-Statistiken zur aktuellen Query.
Ausgabe von XML-Ausführungsplänen zur aktuellen Query.
alter table set lock escaltion false;
Nur noch Row-Level Locking für Tabellen.
Mit Hilfe des PAL-Tools können SQL-Server Performance-Analysen durchgeführt werden.
Database Engine Tuning Advisor
SQL Server Best Practice Analyser (Freies Tool)
Performance-Monitor (perfmon)