Brent Ozar weiß alles darüber, wie man schnell fährt – er fährt Autorennen und bringt SQL Server täglich mit atemberaubenden Datenbankleistungsergebnissen auf Hochtouren. In seinem Webcast „Wie man SQL Server misst“ für die Database Training Days-Reihe von Quest, Brent erinnerte uns daran, dass es bei Leistung ausschließlich um Messung geht.
Hochtouren für Leistung
Brent nutzte die Gelegenheit, um soziale Distanzierung zu üben, und kleidete die Rolle, indem er einen vollständigen Rennanzug und einen Helm anzog. In einigen Scherzen vor dem Webcast erfuhren wir, dass er ein Mikrofon in den Helm stecken und die Ohrstöpsel an seine Ohren kleben musste! Aber wir schweifen ab. Bei dem Webcast drehte sich alles um Leistung, und es gab viele Analogien zu Autos.
Um die Leistung von SQL Server zu verbessern, gelten folgende Voraussetzungen:
- Wählen Sie Messwerte aus, um sich auf die Verbesserung zu konzentrieren
- Messen Sie die Leistung vor und nach dem Vornehmen begrenzter Änderungen (grundlegende wissenschaftliche Methode)
- Verstehen Sie, wenn Sie die falsche Ausrüstung für das haben, was Sie erreichen möchten
Metriken zur Optimierung der Datenbankleistung
Eine lange Diskussion über Ford F150-Lkw, Ford Fiestas und einige andere interessante Fahrzeuge zeigte, dass es verschiedene Möglichkeiten gibt, die Zeit zu verbessern, die benötigt wird, um von 0 auf 60 Meilen pro Stunde zu gelangen. Sie können das Gewicht des Fahrzeugs verringern, einen größeren Motor einbauen oder anfangen, unwesentliches zu entfernen – wie eine Windschutzscheibe. Es wird einen Kompromiss zwischen Leistung und Nutzen geben. Datenbanken sind einfach so – sie werden oft herunter geladen. In diesem Fall ist eine benutzerdefinierte Leistungsoptimierung erforderlich, die die Kenntnis und Verbesserung der Metriken erfordert.
Brent behauptet, dass es drei primäre Metriken gibt, die Sie für die Leistungsoptimierung von Autos und Datenbanken benötigen:Gewicht, Geschwindigkeits-Benchmark (wie 0 bis 60) und wie hart der Motor (Server) arbeitet.
Datenbankgröße messen
Die Gewichtung für SQL Server entspricht der Gesamtgröße der Datenbank und der Menge Ihrer Daten. Dies wird normalerweise in Gigabyte oder Terabyte gemessen. Von etwa 1-150 GB sollte SQL Server Standard Edition ausreichen. Von 150-500 GB ist eine einfache Belastung für die Enterprise Edition. Ab 500 GB spielt es eine Rolle, ob es sich um aktive Daten handelt und wie auf sie zugegriffen wird. Und alles über 1 TB an OLTP-Daten könnte eine große Herausforderung darstellen.
Leistungsgeschwindigkeit verfolgen
Der Geschwindigkeitsmaßstab bei Autos ist einfach – MPH. Für die Datenbank sind es Batch-Anfragen pro Sekunde, aber dies muss stündlich in verschiedenen Zeiträumen verfolgt werden. Je mehr Abfragen vorhanden sind, desto langsamer wird natürlich die Leistung, abhängig von der Hardware.
Abfragearbeitslasten bewerten
Um zu verstehen, wie hart die Datenbank arbeitet, müssen Sie schließlich verstehen, welche Abfragen derzeit ausgeführt werden und was in der Warteschlange wartet. Dadurch erhalten Sie ein Wartezeitverhältnis – im Grunde genommen, wie lange Aufgaben darauf warten, dass andere erledigt werden. Ihr Wartezeitverhältnis wird in Stunden Wartezeit pro Stunde (oder Sekunden Wartezeit pro Sekunde) ausgedrückt – mischen Sie Ihre Maßeinheiten nicht. Wenn Sie diese Statistiken im Laufe der Zeit gut im Griff haben, können Sie sehen, was sich auf die Wartezeit auswirkt, z. B. wenn es mehr oder weniger Batch-Anfragen, besser oder schlechter abgestimmte Abfragen usw. gibt. Dann können Sie diese Probleme angehen.
Sehen Sie sich die Aufzeichnung des On-Demand-Webinars an, um Brents weisen Rat und seinen Humor zu erfahren.