Delen via


Maximale capaciteitsspecificaties voor SQL Server

Van toepassing op:SQL Server

In dit artikel worden de maximumgrootten en het aantal verschillende objecten weergegeven dat is gedefinieerd in SQL Server 2016 (13.x) en hoger. Als u editielimieten wilt weergeven, raadpleegt u Limieten voor rekencapaciteit per editie van SQL Server.

Zie voor SQL Server 2014 (12.x) de maximale capaciteitsspecificaties voor SQL Server 2014.

Database Engine-objecten

Maximumwaarden van verschillende objecten die zijn gedefinieerd in SQL Server-databases of waarnaar wordt verwezen in Transact-SQL instructies.

SQL Server Database Engine-object Maximumwaarden voor SQL Server (64-bits) Aanvullende informatie
Batchgrootte 65.536 * (netwerkpakketgrootte) De grootte van het netwerkpakket is de grootte van de TDS-pakketten (tabellaire gegevensstroom) die worden gebruikt om te communiceren tussen de relationele database-engine en toepassingen. De standaardgrootte van het pakket is 4 kB. De grootte van het netwerkpakket bepaalt deze configuratieoptie.
Bytelengte van een tekenreeks met Transact-SQL instructies (batchgrootte) 65.536 * (netwerkpakketgrootte) De grootte van het netwerkpakket is de grootte van de TDS-pakketten (tabellaire gegevensstroom) die worden gebruikt om te communiceren tussen de relationele database-engine en toepassingen. De standaardpakketgrootte is 4 kB en wordt beheerd door de configuratieoptie voor netwerkpakketten.
Bytes per korte tekenreekskolom 8,000
Bytes per GROUP BY, ORDER BY 8,060
Bytes per indexsleutel 900 bytes voor een geclusterde index. 1700 bytes voor een niet-geclusterde index. Voor SQL Server 2014 (12.x) en eerdere versies worden 900 bytes ondersteund voor alle indextypen. Het maximum aantal bytes in een geclusterde indexsleutel mag niet groter zijn dan 900. Voor een niet-geclusterde indexsleutel is het maximum 1700 bytes.

U kunt een sleutel definiëren met behulp van kolommen met een variabele lengte waarvan de maximale grootte meer is dan de limiet. De gecombineerde grootte van de gegevens in deze kolommen kan echter nooit de limiet overschrijden.
In een niet-geclusterde index kunt u extra niet-sleutelkolommen opnemen en ze tellen niet mee aan de groottelimiet van de sleutel. Met de niet-sleutelkolommen kunnen sommige query's beter presteren.
Bytes per indexsleutel voor tabellen die zijn geoptimaliseerd voor geheugen 2500 bytes voor een niet-geclusterde index. Geen limiet voor een hash-index, zolang alle indexsleutels in de rij passen. In een tabel die is geoptimaliseerd voor geheugen, kan een niet-geclusterde index geen sleutelkolommen bevatten waarvan de maximale gedeclareerde grootte groter is dan 2500 bytes. Het maakt niet uit of de werkelijke gegevens in de sleutelkolommen korter zijn dan de maximale gedeclareerde grootten.

Voor een hash-indexsleutel is er geen vaste limiet voor de grootte.
Voor indexen in tabellen die zijn geoptimaliseerd voor geheugen, is er geen concept van opgenomen kolommen, omdat alle indexen inherent alle kolommen dekken.
Voor een tabel die is geoptimaliseerd voor geheugen, hoewel de rijgrootte 8.060 bytes is, kunnen sommige kolommen met variabele lengte fysiek worden opgeslagen buiten die 8060 bytes. De maximale gedeclareerde grootte van alle sleutelkolommen voor alle indexen in een tabel, plus eventuele extra kolommen met een vaste lengte in de tabel, moeten echter in de 8060 bytes passen.
Bytes per refererende sleutel 900
Bytes per primaire sleutel 900
Bytes per rij 8,060 SQL Server biedt ondersteuning voor rij-overloopopslag, waardoor kolommen met variabele lengte buiten de rij kunnen worden gepusht. Er wordt slechts een hoofdmap van 24 bytes opgeslagen in de hoofdrecord voor kolommen met variabele lengte die uit de rij worden gepusht. Zie Ondersteuning voor grote rijen voor meer informatie.
Bytes per rij in tabellen die zijn geoptimaliseerd voor geheugen 8,060 Voor geheugen geoptimaliseerde tabellen in SQL Server 2016 (13.x) en hoger bieden ondersteuning voor opslag buiten rij. Kolommen met variabele lengte worden buiten de rij gepusht als de maximumgrootten voor alle kolommen in de tabel groter zijn dan 8060 bytes; deze actie is een beslissing over de compilatietijd. Er wordt slechts een verwijzing van 8 bytes opgeslagen in rij voor kolommen die buiten de rij zijn opgeslagen. Zie Tabel- en rijgrootte in tabellen die zijn geoptimaliseerd voor geheugen voor meer informatie.
Bytes in brontekst van een opgeslagen procedure Minder batchgrootte of 250 MB
Bytes pervarchar(max), , , xml, of textimage kolom varbinary(max) 2^31-1
Tekens per ntext kolom nvarchar(max) 2^30-1
Geclusterde indexen per tabel 1
Kolommen in GROUP BY, ORDER BY Alleen beperkt door het aantal bytes
Kolommen of expressies in een GROUP BY WITH CUBE of-instructie GROUP BY WITH ROLLUP 10
Kolommen per indexsleutel 32 Als de tabel een of meer XML-indexen bevat, is de clustersleutel van de gebruikerstabel beperkt tot 31 kolommen omdat de XML-kolom wordt toegevoegd aan de clustersleutel van de primaire XML-index. U kunt niet-sleutelkolommen opnemen in een niet-geclusterde index om de beperking van maximaal 32 sleutelkolommen te voorkomen. Zie Indexen maken met opgenomen kolommen voor meer informatie.
Kolommen per refererende sleutel of primaire sleutel 32
Kolommen per INSERT instructie 4,096
Kolommen per SELECT instructie 4,096
Kolommen per tabel 1,024 Tabellen met sparse-kolomsets bevatten maximaal 30.000 kolommen. Zie Kolomsets gebruiken.
Kolommen per UPDATE instructie 4,096 Er gelden verschillende limieten voor het gebruik van kolomsets.
Kolommen per weergave 1,024
Verbindingen per client Maximumwaarde van geconfigureerde verbindingen
Databasegrootte 524.272 terabytes
Databases per exemplaar van SQL Server 32.767
Bestandsgroepen per database 32.767
Bestandsgroepen per database voor gegevens die zijn geoptimaliseerd voor geheugen 1
Bestanden per database 32.767
Bestandsgrootte (gegevens) 16 terabytes
Bestandsgrootte (logboek) 2 terabytes
Gegevensbestanden voor gegevens die zijn geoptimaliseerd voor geheugen per database 4.096 in SQL Server 2014 (12.x). De limiet is minder streng voor SQL Server 2016 (13.x) en hoger.
Delta-bestand per gegevensbestand voor gegevens die zijn geoptimaliseerd voor geheugen 1
Verwijzingen naar refererende sleuteltabellen per tabel Uitgaand = 253.
Inkomende = 10.000.
Zie Refererende-sleutelrelaties maken voor beperkingen.
Id-lengte (in tekens) 128
Exemplaren per computer 50 exemplaren op een zelfstandige server.

25 exemplaren van failoverclusters wanneer u een gedeeld clusterstation als opslag gebruikt.
50 exemplaren van failoverclusters met SMB-bestandsshares als opslagoptie.
Indexen per tabel die is geoptimaliseerd voor geheugen 999 vanaf SQL Server 2017 (14.x) en in Azure SQL Database.

8 in SQL Server 2016 (13.x) en SQL Server 2014 (12.x).
Vergrendelingen per verbinding Maximum aantal vergrendelingen per server
Vergrendelingen per exemplaar van SQL Server Alleen beperkt door geheugen Deze waarde is bedoeld voor de toewijzing van statische vergrendelingen. Dynamische vergrendelingen worden alleen beperkt door geheugen.
Geneste opgeslagen procedureniveaus 32 Als een opgeslagen procedure toegang heeft tot meer dan 64 databases of meer dan twee databases in interleaving, krijgt u een foutmelding.
Geneste subquery's 32
Geneste transacties 4,294,967,296
Geneste triggerniveaus 32
Niet-geclusterde indexen per tabel 999
Aantal afzonderlijke expressies in de GROUP BY component wanneer een van de volgende aanwezig is: CUBE, ROLLUP, GROUPING SETS, WITH CUBEWITH ROLLUP 32
Aantal groeperingssets gegenereerd door operators in de GROUP BY component 4,096
Parameters per opgeslagen procedure 2,100
Parameters per door de gebruiker gedefinieerde functie 2,100
REFERENCES per tabel 253
Rijen per tabel Beperkt door beschikbare opslag
Tabellen per database Beperkt door het totale aantal objecten in een database Objecten omvatten tabellen, weergaven, opgeslagen procedures, door de gebruiker gedefinieerde functies, triggers, regels, standaardinstellingen en beperkingen. De som van het aantal objecten in een database mag niet groter zijn dan 2.147.483.647.
Partities per gepartitioneerde tabel of index 15,000
Statistieken over niet-geïndexeerde kolommen 30,000
Tabellen per SELECT instructie Alleen beperkt door beschikbare resources
Triggers per tabel Beperkt door het aantal objecten in een database Objecten omvatten tabellen, weergaven, opgeslagen procedures, door de gebruiker gedefinieerde functies, triggers, regels, standaardinstellingen en beperkingen. De som van het aantal objecten in een database mag niet groter zijn dan 2.147.483.647.
Gebruikersverbindingen 32.767
XML-indexen 249

Toepassingsobjecten voor SQL Server-gegevenslaag

Maximumwaarden van verschillende objecten die zijn getest in de SQL Server-gegevenslaagtoepassingen (DAC).

SQL Server DAC-object Maximumwaarden voor SQL Server (64-bits) Aanvullende informatie
Databases per DAC 1
Objecten per DAC Beperkt door het aantal objecten in een database of het beschikbare geheugen. Typen objecten die in de limiet zijn opgenomen, zijn gebruikers, tabellen, weergaven, opgeslagen procedures, door de gebruiker gedefinieerde functies, door de gebruiker gedefinieerd gegevenstype, databaserollen, schema's en door de gebruiker gedefinieerde tabeltypen.

Replicatieobjecten

Maximumwaarden van verschillende objecten die zijn gedefinieerd in SQL Server-replicatie.

SQL Server-replicatieobject Maximumwaarden voor SQL Server
(64-bits)
Aanvullende informatie
Artikelen (publicatie samenvoegen) 2,048
Artikelen (momentopname of transactionele publicatie) 32.767
Kolommen in een tabel (publicatie samenvoegen) 246 Als rijtracering wordt gebruikt voor conflictdetectie (de standaardinstelling), kan de basistabel maximaal 1024 kolommen bevatten. De publicatie moet het artikel echter filteren, zodat maximaal 246 kolommen worden gepubliceerd. Als kolomtracking wordt gebruikt, kan de basistabel maximaal 246 kolommen bevatten.
Kolommen in een tabel (SQL Server-momentopname of transactionele publicatie) 1,000 De basistabel kan het maximum aantal toegestane kolommen bevatten in de SQL Server-publicatiedatabase (1024), maar kolommen moeten worden gefilterd uit het artikel als ze het maximum overschrijden dat is opgegeven voor het publicatietype.
Kolommen in een tabel (Oracle-momentopname of transactionele publicatie) 995 De basistabel kan het maximum aantal toegestane kolommen bevatten in de SQL Server-publicatiedatabase (1024), maar kolommen moeten worden gefilterd uit het artikel als ze het maximum overschrijden dat is opgegeven voor het publicatietype.
Bytes voor een kolom die wordt gebruikt in een rijfilter (publicatie samenvoegen) 1,024
Bytes voor een kolom die wordt gebruikt in een rijfilter (momentopname of transactionele publicatie) 8,000