Was sind die Leistungsgrenzen einer Datenbank?

Was sind die Leistungsgrenzen einer Datenbank?

Was sind ungefähre Leistungsgrenzen (Lesen/s, Schreiben/s) für einen einzelnen Datenbankserver (keine Master-Slave-Architektur), vorausgesetzt, dass die Speicherung auf der Festplatte erfolgt? Wie viele Lese-/Schreibvorgänge sind abhängig von der Art der Festplatte? (SSD vs. Nicht-SSD), vorausgesetzt, es handelt sich um einfache Vorgänge (eine Zeile nach Primärschlüssel auswählen, eine Zeile aktualisieren, korrekt indiziert). Ich gehe davon aus, dass diese Grenze vom Suchen/Schreiben auf der Festplatte abhängt.

BEARBEITEN: Meine Frage bezieht sich eher darauf, ungefähre Messwerte für die Anzahl der Vorgänge zu erhalten, die eine Datenbank unterstützt: um beispielsweise wissen zu können, ob eine neue Funktion, die 300 Einfügungen/s auslöst, unterstützt werden kann, ohne eine Skalierung mit zusätzlichen Servern durchzuführen.

Antwort1

Sie können viele Benchmark-Ergebnisse lesenHierals ob die Website eine zuverlässige Quelle wäre.

Antwort2

Ich möchte Ihnen vorschlagen, es auszuprobieren, um die Antwort auf Ihre Frage zu erhalten. Wenn Sie Windows verwenden,SSIO.exeFühren Sie auf Ihrer Entwicklungsbox einen Leistungstest der Festplatte durch, um zu verstehen, wie sie sich im Nichtstun verhält.

Führen Sie dann den Leistungsmonitor aus (vorausgesetzt, Sie verwenden MS-SQL TKProf, vielleicht Oracle – verwenden Sie nicht MySQL oder andere, es gibt leider ein ähnliches Tool.) Führen Sie Ihre Abfrage aus und prüfen Sie, wie viele Lese-/Schreibvorgänge und wie viel CPU dafür benötigt wurde. Sie können dann die SSIO- und Leistungsmonitor-Zahlen vergleichen und die Hardwareanforderungen skalieren, um die Anzahl der Benutzer/Häufigkeit zu bewältigen, die dieses Update basierend auf Ihrer aktuellen Ausrüstung benötigt.

Allerdings sind 300 Zeilen eine sehr kleine Anzahl von Zeilen, die für jeden vernünftigen SQL Server geändert werden müssen, selbst auf relativ langsamen Festplatten. Es sei denn, es gibt massive zusammengesetzte Indizes oder Blobs usw. Ich habe Live-Prozesse, während der Benutzer eine Abfrage beobachtet, die 1,5 Millionen Zeilen erstellt, die in Sekundenbruchteilen auf relativ bescheidener Hardware ausgeführt werden.

Antwort3

DukippenBeurteilen Sie Ihre App und die Auslastung, ohne sie einem Benchmarking zu unterziehen.

Es kommt auf RAID-Level, Spindelgeschwindigkeiten, Größe der Transaktionen (nicht nur „Einfügungen“), Trigger, Fremdschlüssel, Hyperthreading, andere Apps auf dem Server, RAM im Server, Anordnung der Festplatten (separate Volumes für TempDB, eines pro DB-T-Log, MDFs usw.), Service Pack-Level, Cache-Konfiguration des RAID-Controllers, CPU Ls + L3-Cache, Anzahl der Kerne, Schemadesign, Code usw. an.

Das Hochskalieren ist einfacher als das Hochskalieren: Sie fügen Overhead hinzu, wenn Sie Server oder Partitionstabellen föderieren. Das Hinzufügen von RAM und mehr Spindeln ist billiger.

Ein guter Artikel istPaul Nielsons 35.000 TPS. Mindestens 100-mal höhere Belastung als Ihre 300 oder so.

verwandte Informationen