Spezifikationen der maximalen Kapazität für SQL Server
Die folgende Tabelle gibt die maximale Größe und Anzahl verschiedener in SQL Server-Komponenten definierter Objekte an.
Datenbankmodul-Objekte
Die folgende Tabelle gibt die maximale Größe und Anzahl verschiedener in SQL Server-Datenbanken definierter oder in Transact-SQL-Anweisungen referenzierter Objekte an.
SQL Server-Datenbankmodul-Objekt |
Maximale Größe/Anzahl SQL Server (32-Bit) |
Maximale Größe/Anzahl SQL Server (64-Bit) |
---|---|---|
Batchgröße1 |
65.536 * Netzwerkpaketgröße |
65.536 * Netzwerkpaketgröße |
Bytes pro Spalte mit kurzen Zeichenfolgen |
8.000 |
8.000 |
Bytes pro GROUP BY, ORDER BY |
8.060 |
8.060 |
Bytes pro Indexschlüssel2 |
900 |
900 |
Bytes pro Fremdschlüssel |
900 |
900 |
Bytes pro Primärschlüssel |
900 |
900 |
Bytes pro Zeile8 |
8.060 |
8.060 |
Bytes im Quelltext einer gespeicherten Prozedur |
Kleiner als Batchgröße oder 250 MB |
Kleiner als Batchgröße oder 250 MB |
Bytes pro varchar(max)-, varbinary(max)-, xml-, text- oder image-Spalte. |
2^31-1 |
2^31-1 |
Zeichen pro ntext- oder nvarchar(max)-Spalte |
2^30-1 |
2^30-1 |
Gruppierte Indizes pro Tabelle |
1 |
1 |
Spalten in GROUP BY, ORDER BY |
Begrenzung nur durch die Anzahl von Bytes |
Begrenzung nur durch die Anzahl von Bytes |
Spalten oder Ausdrücke in einer GROUP BY WITH CUBE- oder WITH ROLLUP-Anweisung |
10 |
10 |
Spalten pro Indexschlüssel7 |
16 |
16 |
Spalten pro Fremdschlüssel |
16 |
16 |
Spalten pro Primärschlüssel |
16 |
16 |
Spalten pro Tabelle (keine breite Tabelle) |
1.024 |
1.024 |
Spalten pro breiter Tabelle |
30.000 |
30.000 |
Spalten pro SELECT-Anweisung |
4.096 |
4.096 |
Spalten pro INSERT-Anweisung |
4.096 |
4.096 |
Verbindungen pro Client |
Höchstwert konfigurierter Verbindungen |
Höchstwert konfigurierter Verbindungen |
Datenbankgröße |
524.272 Terabyte |
524.272 Terabyte |
Datenbanken pro Instanz von SQL Server |
32.767 |
32.767 |
Dateigruppen pro Datenbank |
32.767 |
32.767 |
Dateien pro Datenbank |
32.767 |
32.767 |
Dateigröße (Daten) |
16 Terabytes |
16 Terabytes |
Dateigröße (Protokoll) |
2 Terabytes |
2 Terabytes |
Verweise auf Fremdschlüsseltabellen pro Tabelle4 |
253 |
253 |
Bezeichnerlänge (in Zeichen) |
128 |
128 |
Instanzen pro Computer |
50 Instanzen auf einem eigenständigen Server für alle SQL Server-Editionen außer "Workgroup". "Workgroup" unterstützt maximal 16 Instanzen pro Computer. SQL Server unterstützt 25 Instanzen in einem Failovercluster. |
50 Instanzen auf einem eigenständigen Server 25 Instanzen in einem Failovercluster |
Länge einer Zeichenfolge, die SQL-Anweisungen enthält (Batchgröße)1 |
65.536 * Netzwerkpaketgröße |
65.536 * Netzwerkpaketgröße |
Sperren pro Verbindung |
Maximale Anzahl Sperren pro Server |
Maximale Anzahl Sperren pro Server |
Sperren pro Instanz von SQL Server5 |
Bis zu 2.147.483.647 |
Begrenzung nur durch Arbeitsspeicher |
Schachtelungsebenen gespeicherter Prozeduren6 |
32 |
32 |
Geschachtelte Unterabfragen |
32 |
32 |
Schachtelungsebenen für Trigger |
32 |
32 |
Nicht gruppierte Indizes pro Tabelle |
999 |
999 |
Anzahl der unterschiedlichen Ausdrücke in der GROUP BY-Klausel bei Vorhandensein eines der folgenden Ausdrücke: CUBE, ROLLUP, GROUPING SETS, WITH CUBE, WITH ROLLUP |
32 |
32 |
Anzahl der Gruppierungssätze, die von Operatoren in der GROUP BY-Klausel generiert wurden |
4.096 |
4.096 |
Parameter pro gespeicherter Prozedur |
2.100 |
2.100 |
Parameter pro benutzerdefinierter Funktion |
2.100 |
2.100 |
REFERENCES pro Tabelle |
253 |
253 |
Zeilen pro Tabelle |
Begrenzung durch verfügbaren Speicherplatz |
Begrenzung durch verfügbaren Speicherplatz |
Tabellen pro Datenbank3 |
Begrenzung durch die Anzahl der Objekte in einer Datenbank |
Begrenzung durch die Anzahl der Objekte in einer Datenbank |
Partitionen pro partitionierter Tabelle oder partitioniertem Index |
1.000 |
1.000 |
Statistiken für nicht indizierte Spalten |
30.000 |
30.000 |
Tabellen pro SELECT-Anweisung |
Begrenzung nur durch verfügbare Ressourcen |
Begrenzung nur durch verfügbare Ressourcen |
Trigger pro Tabelle3 |
Begrenzung durch die Anzahl der Objekte in einer Datenbank |
Begrenzung durch die Anzahl der Objekte in einer Datenbank |
Spalten pro UPDATE-Anweisung (breite Tabellen) |
4.096 |
4.096 |
Benutzerverbindungen |
32.767 |
32.767 |
XML-Indizes |
249 |
249 |
1 Die Netzwerk-Paketgröße entspricht der Größe der TDS-Pakete (Tabular Data Stream), die für die Kommunikation zwischen Anwendungen und relationalem Database Engine (Datenbankmodul) verwendet werden. Die Standardpaketgröße beträgt 4 KB und wird durch die Konfigurationsoption network packet size (Netzwerkpaketgröße) gesteuert.
2 Die maximale Anzahl von Bytes in einem beliebigen Indexschlüssel kann den Wert 900 in SQL Server nicht überschreiten. Sie können einen Schlüssel mithilfe von Spalten variabler Länge definieren, deren maximale Größen zusammen mehr als 900 Bytes betragen, wenn niemals eine Zeile eingefügt wird, die in diesen Spalten mehr als 900 Bytes an Daten enthält. In SQL Server können Sie Nichtschlüsselspalten in den nicht gruppierten Index aufnehmen, um die maximale Indexschlüsselgröße von 900 Bytes zu vermeiden.
3 Zu den Datenbankobjekten zählen Tabellen, Sichten, gespeicherte Prozeduren, benutzerdefinierte Funktionen, Trigger, Regeln, Standardwerte und Einschränkungen. Die Summe aller Objekte in einer Datenbank kann 2.147.483.647 nicht übersteigen.
4Auch wenn eine Tabelle eine unbegrenzte Anzahl von FOREIGN KEY-Einschränkungen enthalten kann, werden maximal 253 empfohlen. In Abhängigkeit von der Hardwarekonfiguration, die SQL Server hostet, kann das Angeben weiterer FOREIGN KEY-Einschränkungen den Abfrageoptimierer bei der Verarbeitung stark beanspruchen.
5 Dieser Wert dient der statischen Sperrenzuordnung. Dynamische Sperren sind nur durch den Arbeitsspeicher beschränkt.
6 Wenn eine gespeicherte Prozedur auf mehr als 8 Datenbanken zugreift oder sich mehr als 2 Datenbanken überlappen, erhalten Sie einen Fehler.
7 Wenn die Tabelle einen oder mehrere XML-Indizes enthält, ist der Gruppierungsschlüssel der Benutzertabelle auf 15 Spalten beschränkt, das die XML-Spalte dem Gruppierungsschlüssel des primären XML-Index hinzugefügt wird. In SQL Server können Sie Nichtschlüsselspalten in den nicht gruppierten Index aufnehmen, um die Beschränkung auf maximal 16 Schlüsselspalten zu vermeiden. Weitere Informationen finden Sie unter Index mit eingeschlossenen Spalten.
8SQL Server unterstützt die Zeilenüberlaufspeicherung, sodass Spalten variabler Länge aus der Zeile verschoben werden können. Für Spalten variabler Länge, die aus der Zeile verschoben wurden, wird im Hauptdatensatz nur ein 24-Byte-Stamm gespeichert. Aus diesem Grund ist das tatsächlich gültige Zeilenlimit höher als in früheren Versionen von SQL Server. Weitere Informationen finden Sie unter "Zeilenüberlauf bei Daten über 8 KB" in der SQL Server-Onlinedokumentation.
Replikationsobjekte
Die folgende Tabelle gibt die maximale Größe und Anzahl verschiedener in der SQL Server-Replikation definierter Objekte an.
SQL Server-Replikationsobjekt |
Maximale Größe/Anzahl SQL Server (32-Bit) |
Maximale Größe/Anzahl SQL Server (64-Bit) |
---|---|---|
Artikel (Mergeveröffentlichung) |
256 |
256 |
Artikel (Snapshot- oder Transaktionsveröffentlichung) |
32.767 |
32.767 |
Spalten in einer Tabelle1 (Mergeveröffentlichung) |
246 |
246 |
Spalten in einer Tabelle2 (SQL Server-Snapshot- oder -Transaktionsveröffentlichung) |
1.000 |
1.000 |
Spalten in einer Tabelle2 (Oracle-Snapshot- oder -Transaktionsveröffentlichung) |
995 |
995 |
Bytes für eine in einem Zeilenfilter verwendete Spalte (Mergeveröffentlichung) |
1.024 |
1.024 |
Bytes für eine in einem Zeilenfilter verwendete Spalte (Snapshot- oder Transaktionsveröffentlichung) |
8.000 |
8.000 |
1 Wenn Zeilennachverfolgung zur Konflikterkennung verwendet wird (Standard), kann die Basistabelle maximal 1.024 Spalten enthalten. Die Spalten müssen aber aus dem Artikel herausgefiltert werden, sodass maximal 246 Spalten veröffentlicht werden. Wenn Spaltennachverfolgung verwendet wird, kann die Basistabelle maximal 246 Spalten enthalten. Weitere Informationen zur Nachverfolgungsebene finden Sie im Abschnitt zur Nachverfolgungsebene unter Konflikterkennung und -lösung bei der Mergereplikation.
2 Die Basistabelle kann die maximal zulässige Anzahl von Spalten in der Veröffentlichungsdatenbank (1.024 für SQL Server) enthalten. Die Spalten müssen aber aus dem Artikel herausgefiltert werden, wenn sie das für den Veröffentlichungstyp angegebene Maximum überschreiten.