Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Datenbank, die>500 Millionen Zeilen verarbeiten kann

MSSQL kann so viele Zeilen problemlos verarbeiten. Die Abfragezeit ist vollständig abhängig von viel mehr Faktoren als nur der einfachen Zeilenanzahl.

Zum Beispiel wird es abhängen von:

  1. wie viele Joins diese Abfragen machen
  2. wie gut Ihre Indizes eingerichtet sind
  3. wie viel RAM ist in der Maschine
  4. Geschwindigkeit und Anzahl der Prozessoren
  5. Typ und Spindelgeschwindigkeit von Festplatten
  6. Größe der Zeile/Datenmenge, die in der Abfrage zurückgegeben wird
  7. Geschwindigkeit/Latenz der Netzwerkschnittstelle

Es ist sehr einfach, eine kleine Tabelle (weniger als 10.000 Zeilen) zu haben, die ein paar Minuten dauern würde, um eine Abfrage auszuführen. Verwenden Sie beispielsweise viele Joins, Funktionen in der Where-Klausel und Null-Indizes auf einem Atom-Prozessor mit insgesamt 512 MB RAM.;)

Es erfordert etwas mehr Arbeit, um sicherzustellen, dass alle Ihre Indizes und Fremdschlüsselbeziehungen gut sind, dass Ihre Abfragen optimiert sind, um unnötige Funktionsaufrufe zu eliminieren und nur die Daten zurückzugeben, die Sie tatsächlich benötigen. Außerdem benötigen Sie schnelle Hardware.

Es läuft alles darauf hinaus, wie viel Geld Sie ausgeben möchten, die Qualität des Entwicklerteams und die Größe der Datenzeilen, mit denen Sie es zu tun haben.

AKTUALISIEREN Aktualisierung aufgrund von Änderungen in der Frage.

Die Menge an Informationen hier reicht immer noch nicht aus, um eine Antwort aus der realen Welt zu geben. Sie müssen es nur testen und Ihr Datenbankdesign und Ihre Hardware nach Bedarf anpassen.

Zum Beispiel könnte ich sehr leicht 1 Milliarde Zeilen in einer Tabelle auf einem Computer mit diesen Spezifikationen haben und eine Abfrage "select top(1) id from tableA (nolock)" ausführen und in Millisekunden eine Antwort erhalten. Aus dem gleichen Grund können Sie eine "select * from tablea"-Abfrage ausführen, und es dauert eine Weile, denn obwohl die Abfrage schnell ausgeführt wird, dauert die Übertragung all dieser Daten über die Leitung eine Weile.

Punkt ist, Sie müssen testen. Das bedeutet, den Server einzurichten, einige Ihrer Tabellen zu erstellen und sie zu füllen. Dann müssen Sie die Leistungsoptimierung durchführen, um Ihre Abfragen und Indizes richtig hinzubekommen. Als Teil der Leistungsoptimierung werden Sie nicht nur aufdecken, wie die Abfragen umstrukturiert werden müssen, sondern auch genau, welche Teile der Maschine basierend auf der Sperre möglicherweise ersetzt werden müssen (z. B. Festplatte, mehr RAM, CPU usw.). und Wartetypen.

Ich empfehle Ihnen dringend, einen oder zwei DBAs einzustellen (oder zu beauftragen), die dies für Sie erledigen.