Spezifikationen der maximalen Kapazität für SQL Server
Gilt für: SQL Server
In diesem Artikel finden Sie die maximalen Größen und Anzahlen verschiedener Objekte, die in SQL Server 2016 (13.x) und höher definiert sind. Weitere Informationen über die Editionsbeschränkungen finden Sie unter Computekapazitätsbeschränkungen nach SQL Server-Edition.
Informationen zu SQL Server 2014 (12.x) finden Sie unter Spezifikationen der maximalen Kapazität für SQL Server 2014.
Datenbank-Engine-Objekte
Die maximalen Werte verschiedener Objekte, die in SQL Server-Datenbanken definiert sind oder auf die in Transact-SQL-Anweisungen verwiesen wird
SQL Server Datenbank-Engine-Objekte | Maximale Werte für SQL Server (64 Bit) | Zusätzliche Informationen |
---|---|---|
Batchgröße | 65.536 × (Netzwerkpaketgröße) | Die Größe von Netzwerkpaketen entspricht der Größe der TDS-Pakete (Tabular Data Stream), die für die Kommunikation zwischen der relationalen Datenbank-Engine und Anwendungen verwendet werden. Der Standardwert ist 4 KB. Die Netzwerkpaketgröße steuert diese Konfigurationsoption. |
Die Bytelänge einer Zeichenfolge, die Transact-SQL-Anweisungen enthält (Batchgröße) | 65.536 × (Netzwerkpaketgröße) | Die Größe von Netzwerkpaketen entspricht der Größe der TDS-Pakete (Tabular Data Stream), die für die Kommunikation zwischen der relationalen Datenbank-Engine und Anwendungen verwendet werden. Die Standardpaketgröße beträgt 4 KB und wird durch die Konfigurationsoption Netzwerkpaketgröße gesteuert. |
Bytes pro Spalte mit kurzen Zeichenfolgen | 8\.000 | |
Byte pro GROUP BY , ORDER BY |
8\.060 | |
Bytes pro Indexschlüssel | 900 Bytes für einen gruppierten Index. 1.700 Byte für einen nicht gruppierten Index. Für SQL Server 2014 (12.x) und früher haben alle Versionen 900 Byte für alle Indextypen unterstützt. | Die maximale Anzahl von Bytes in einem Schlüssel für einen gruppierten Index darf nicht höher als 900 sein. Bei einem Schlüssel für einen nicht gruppierten Index liegt der Höchstwert bei 1.700 Byte. Sie können einen Schlüssel mithilfe von Spalten mit variabler Länge definieren, deren maximale Größe in der Summe oberhalb des Grenzwerts liegen. Die Gesamtgröße der in diesen Spalten enthaltenen Daten darf den Grenzwert jedoch nie überschreiten. In einem nicht gruppierten Index können Sie zusätzliche Nichtschlüsselspalten einschließen. Diese werden bei der Berechnung der maximalen Schlüsselgröße nicht berücksichtigt. Die Nichtschlüsselspalten können die Leistung einer Abfragen verbessern. |
Bytes pro Indexschlüssel für speicheroptimierte Tabellen | 2.500 Byte für einen nicht gruppierten Index. Für einen Hashindex gilt keine Beschränkung, vorausgesetzt dass alle Indexschlüssel in Zeilen passen. | Ein nicht gruppierter Index darf bei speicheroptimierten Tabellen keine Schlüsselspalten enthalten, deren maximale deklarierte Größenangaben 2.500 Byte überschreiten. Dabei ist es unerheblich, ob die tatsächlich in den Spalten vorhandenen Daten kürzer sind als die maximalen deklarierten Größenangaben. Für einen Hashindexschlüssel gibt es keinen festen Grenzwert für die Größe. Für Indizes von speicheroptimierten Tabellen ist das Konzept der eingeschlossenen Spalten hinfällig, da alle Indizes grundsätzlich alle Spalten abdecken. Obwohl die Zeilenlänge bei speicheroptimierten Tabellen 8.060 Byte beträgt, können einige Spalten mit variabler Länge physisch außerhalb dieser 8.060 Byte gespeichert werden. Allerdings müssen die maximalen deklarierten Größenangaben aller Schlüsselspalten für alle Indizes einer Tabelle sowie alle zusätzlichen Spalten mit fester Länge in der Tabelle in die 8.060 Byte passen. |
Bytes pro Fremdschlüssel | 900 | |
Bytes pro Primärschlüssel | 900 | |
Bytes pro Zeile | 8\.060 | SQL Server unterstützt die Zeilenüberlaufspeicherung, sodass Spalten variabler Länge aus der Zeile verschoben werden können. Im Hauptdatensatz für Spalten variabler Länge, die aus einer Zeile verschoben wurden, wird nur ein 24-Byte-Stamm gespeichert. Weitere Informationen finden Sie unter Unterstützung von umfangreichen Zeilen. |
Bytes pro Zeile in speicheroptimierten Tabellen | 8\.060 | Speicheroptimierte Tabellen in SQL Server 2016 (13.x) und höher unterstützen die Speicherung außerhalb der Zeile. Spalten mit variabler Länge werden aus der Zeile verschoben, wenn die maximalen Größengaben aller Spalten in der Tabelle 8.060 Byte überschreiten. Diese Entscheidung fällt zur Kompilierzeit. Für Spalten, die außerhalb der Zeile gespeichert wurden, wird in der Zeile nur eine 8-Byte-Referenz gespeichert. Weitere Informationen finden Sie unter Tabellen- und Zeilengröße in speicheroptimierten Tabellen. |
Bytes im Quelltext einer gespeicherten Prozedur | Kleiner als Batchgröße oder 250 MB | |
Bytes pro varchar(max) -, varbinary(max) -, xml -, text - oder image -Spalte. |
2^31-1 | |
Zeichen pro ntext - oder nvarchar(max) -Spalte |
2^30-1 | |
Gruppierte Indizes pro Tabelle | 1 | |
Spalten in GROUP BY , ORDER BY |
Begrenzung nur durch die Anzahl von Bytes | |
Spalten oder Ausdrücke in einer GROUP BY WITH CUBE - oder GROUP BY WITH ROLLUP -Anweisung |
10 | |
Spalten pro Indexschlüssel | 32 | Wenn die Tabelle einen oder mehrere XML-Indizes enthält, ist der Gruppierungsschlüssel der Benutzertabelle auf 31 Spalten beschränkt, da die XML-Spalte dem Gruppierungsschlüssel des primären XML-Index hinzugefügt wird. Sie können Nichtschlüsselspalten in den nicht gruppierten Index aufnehmen, um die Beschränkung auf maximal 32 Schlüsselspalten zu vermeiden. Weitere Informationen finden Sie unter Create Indexes with Included Columns. |
Spalten pro Fremdschlüssel oder Primärschlüssel | 32 | |
Spalten pro INSERT -Anweisung |
4\.096 | |
Spalten pro SELECT -Anweisung |
4\.096 | |
Spaltenanzahl pro Tabelle | 1\.024 | Tabellen, die Sparsespaltensätze enthalten, umfassen bis zu 30.000 Spalten. Siehe Sparsespaltensätze. |
Spalten pro UPDATE -Anweisung |
4\.096 | Es gelten verschiedene Grenzwerte für Sparsespaltensätze. |
Spalten pro Sicht | 1\.024 | |
Verbindungen pro Client | Höchstwert konfigurierter Verbindungen | |
Datenbankgröße | 524.272 Terabytes | |
Datenbanken pro Instanz von SQL Server | 32.767 | |
Dateigruppen pro Datenbank | 32.767 | |
Dateigruppen pro Datenbank für speicheroptimierte Daten | 1 | |
Dateien pro Datenbank | 32.767 | |
Dateigröße (Daten) | 16 Terabytes | |
Dateigröße (Protokoll) | 2 Terabytes | |
Datendateien für speicheroptimierte Daten pro Datenbank | 4\.096 in SQL Server 2014 (12.x). Der Grenzwert ist weniger streng in SQL Server 2016 (13.x) und höher. | |
Änderungsdatei pro Datendatei für speicheroptimierte Daten | 1 | |
Verweise auf Fremdschlüsseltabellen pro Tabelle | Ausgehend = 253. Eingehend = 10.000. |
Einschränkungen finden Sie unter Create Foreign Key Relationships. |
Bezeichnerlänge (in Zeichen) | 128 | |
Instanzen pro Computer | 50 Instanzen auf einem eigenständigen Server. 25 Failoverclusterinstanzen bei der Verwendung eines freigegebenen Clusterdatenträgers als Speicher 50 Failoverclusterinstanzen mit SMB-Dateifreigaben als Speicheroption. |
|
Indizes pro speicheroptimierter Tabelle | 999 ab SQL Server 2017 (14.x) und in Azure SQL-Datenbank 8 in SQL Server 2016 (13.x) und SQL Server 2014 (12.x) |
|
Sperren pro Verbindung | Maximale Anzahl Sperren pro Server | |
Sperren pro Instanz von SQL Server | Begrenzung nur durch Arbeitsspeicher | Dieser Wert dient der statischen Sperrenzuordnung. Dynamische Sperren sind nur durch den Arbeitsspeicher beschränkt. |
Schachtelungsebenen gespeicherter Prozeduren | 32 | Wenn eine gespeicherte Prozedur auf mehr als 64 Datenbanken oder mehr als zwei sich überlappende Datenbanken zugreift, wird eine Fehlermeldung angezeigt. |
Geschachtelte Unterabfragen | 32 | |
Geschachtelte Transaktionen | 4\.294.967.296 | |
Schachtelungsebenen für Trigger | 32 | |
Nicht gruppierte Indizes pro Tabelle | 999 | |
Anzahl unterschiedlicher Ausdrücke in der GROUP BY -Klausel bei Vorhandensein eines der folgenden Ausdrücke: CUBE , ROLLUP , GROUPING SETS , WITH CUBE , WITH ROLLUP |
32 | |
Anzahl der Gruppierungssätze, die von Operatoren in der GROUP BY -Klausel generiert wurden |
4\.096 | |
Parameter pro gespeicherter Prozedur | 2\.100 | |
Parameter pro benutzerdefinierter Funktion | 2\.100 | |
REFERENCES pro Tabelle | 253 | |
Zeilen pro Tabelle | Begrenzung durch verfügbaren Speicherplatz | |
Tabellen pro Datenbank | Begrenzung durch die Gesamtzahl der Objekte in einer Datenbank | Zu den Objekten zählen Tabellen, Sichten, gespeicherte Prozeduren, benutzerdefinierte Funktionen, Trigger, Regeln, Standardwerte und Einschränkungen. Die Summe aller Objekte in einer Datenbank darf nicht höher als 2.147.483.647 sein. |
Partitionen pro partitionierter Tabelle oder partitioniertem Index | 15.000 | |
Statistiken für nicht indizierte Spalten | 30.000 | |
Tabellen pro SELECT -Anweisung |
Begrenzung nur durch verfügbare Ressourcen | |
Trigger pro Tabelle | Begrenzung durch die Anzahl der Objekte in einer Datenbank | Zu den Objekten zählen Tabellen, Sichten, gespeicherte Prozeduren, benutzerdefinierte Funktionen, Trigger, Regeln, Standardwerte und Einschränkungen. Die Summe aller Objekte in einer Datenbank darf nicht höher als 2.147.483.647 sein. |
Benutzerverbindungen | 32.767 | |
XML-Indizes | 249 |
SQL Server-Datenschichtanwendungsobjekte
Die maximalen Werte verschiedener, in SQL Server -Datenschichtanwendungen (Data-Tier Application, DAC) getesteter Objekte
SQL Server DAC-Objekt | Maximale Werte für SQL Server (64 Bit) | Zusätzliche Informationen |
---|---|---|
Datenbanken pro DAC | 1 | |
Objekte pro DAC | Durch die Anzahl der Objekte in einer Datenbank oder durch den verfügbaren Speicher beschränkt. | Die maximalen Werte gelten für folgende Objekttypen: Benutzer, Tabellen, Sichten, gespeicherte Prozeduren, benutzerdefinierte Funktionen, benutzerdefinierte Datentypen, Datenbankrollen, Schemas und benutzerdefinierte Tabellentypen. |
Replikationsobjekte
Die maximalen Werte verschiedener, in der SQL Server -Replikation definierter Objekte
SQL Server Replikationsobjekt | Maximale Werte für SQL Server (64-Bit) |
Zusätzliche Informationen |
---|---|---|
Artikel (Mergeveröffentlichung) | 2\.048 | |
Artikel (Momentaufnahmen- oder Transaktionsveröffentlichung) | 32.767 | |
Spalten in einer Tabelle (Mergeveröffentlichung) | 246 | Wenn Zeilennachverfolgung zur Konflikterkennung verwendet wird (Standard), kann die Basistabelle maximal 1.024 Spalten enthalten. Die Publikation muss den Artikel jedoch so filtern, dass maximal 246 Spalten veröffentlicht werden. Wenn Spaltennachverfolgung verwendet wird, kann die Basistabelle maximal 246 Spalten enthalten. |
Spalten in einer Tabelle (SQL Server-Momentaufnahmen- oder -Transaktionsveröffentlichung) | 1\.000 | Die Basistabelle kann die maximal zulässige Anzahl von Spalten in der SQL Server-Veröffentlichungsdatenbank (1.024) enthalten. Die Spalten müssen aber aus dem Artikel herausgefiltert werden, wenn sie das für den Veröffentlichungstyp angegebene Maximum überschreiten. |
Spalten in einer Tabelle (Oracle-Momentaufnahmen- oder -Transaktionsveröffentlichung) | 995 | Die Basistabelle kann die maximal zulässige Anzahl von Spalten in der SQL Server-Veröffentlichungsdatenbank (1.024) enthalten. Die Spalten müssen aber aus dem Artikel herausgefiltert werden, wenn sie das für den Veröffentlichungstyp angegebene Maximum überschreiten. |
Bytes für eine in einem Zeilenfilter verwendete Spalte (Mergeveröffentlichung) | 1\.024 | |
Bytes für eine in einem Zeilenfilter verwendete Spalte (Momentaufnahmen- oder Transaktionsveröffentlichung) | 8\.000 |