Dela via


Högsta kapacitetsspecifikationer för SQL Server

Gäller för:SQL Server

Den här artikeln visar maximala storlekar och antal olika objekt som definierats i SQL Server 2016 (13.x) och senare. Om du vill visa versionsgränser läser du Beräkningskapacitetsgränser per utgåva av SQL Server.

Information om SQL Server 2014 (12.x) finns i Maximal kapacitetsspecifikation för SQL Server 2014.

Databasmotorobjekt

Maximala värden för olika objekt som definierats i SQL Server-databaser eller som refereras i Transact-SQL-instruktioner.

SQL Server Database Engine-objekt Högsta värden för SQL Server (64-bitars) Ytterligare information
Batchstorlek 65 536 * (storlek på nätverkspaket) Storleken på nätverkspaket är storleken på de TDS-paket (Tabular Data Stream) som används för att kommunicera mellan relationsdatabasmotorn och programmen. Standardpaketstorleken är 4 KB. Storlek på nätverkspaket styr det här konfigurationsalternativet.
Bytelängd för en sträng som innehåller Transact-SQL-instruktioner (batchstorlek) 65 536 * (storlek på nätverkspaket) Storleken på nätverkspaket är storleken på de TDS-paket (Tabular Data Stream) som används för att kommunicera mellan relationsdatabasmotorn och programmen. Standardpaketstorleken är 4 kB och styrs av konfigurationsalternativet för nätverkspaketstorlek.
Byte per kort strängkolumn 8,000
Byte per GROUP BY, ORDER BY 8,060
Byte per indexnyckel 900 byte för ett grupperat index. 1 700 byte för ett icke-grupperat index. För SQL Server 2014 (12.x) och tidigare stöds alla versioner 900 byte för alla indextyper. Det maximala antalet byte i en klustrad indexnyckel får inte överstiga 900. För en icke-grupperad indexnyckel är maxvärdet 1 700 byte.

Du kan definiera en nyckel med hjälp av kolumner med variabel längd vars maximala storlekar överstiger gränsen. De kombinerade datastorlekarna i dessa kolumner kan dock aldrig överskrida gränsen.
I ett icke-grupperat index kan du inkludera extra icke-nyckelkolumner och de räknas inte mot storleksgränsen för nyckeln. Kolumner som inte är viktiga kan hjälpa vissa frågor att prestera bättre.
Byte per indexnyckel för minnesoptimerade tabeller 2 500 byte för ett icke-grupperat index. Ingen gräns för ett hash-index, så länge alla indexnycklar får plats på rad. I en minnesoptimerad tabell kan ett icke-grupperat index inte ha nyckelkolumner vars maximala deklarerade storlekar överstiger 2 500 byte. Det spelar ingen roll om de faktiska data i nyckelkolumnerna skulle vara kortare än de maximala deklarerade storlekarna.

För en hash-indexnyckel finns det ingen hård gräns för storlek.
För index på minnesoptimerade tabeller finns det inget begrepp med inkluderade kolumner, eftersom alla index i sig täcker alla kolumner.
För en minnesoptimerad tabell, även om radstorleken är 8 060 byte, kan vissa kolumner med variabel längd lagras fysiskt utanför dessa 8 060 byte. Den maximala deklarerade storleken på alla nyckelkolumner för alla index i en tabell, plus eventuella ytterligare kolumner med fast längd i tabellen, måste dock få plats i 8 060 byte.
Byte per sekundärnyckel 900
Byte per primärnyckel 900
Byte per rad 8,060 SQL Server har stöd för lagring med rad-overflow, vilket gör att kolumner med variabel längd kan push-överföras utanför rad. Endast en rot på 24 byte lagras i huvudposten för kolumner med variabel längd som skickas ut från rad. Mer information finns i Stöd för stora rader.
Byte per rad i minnesoptimerade tabeller 8,060 Minnesoptimerade tabeller på SQL Server 2016 (13.x) och senare stöder lagring utanför rad. Kolumner med variabellängd skjuts bort från rad om den maximala storleken för alla kolumner i tabellen överskrider 8 060 byte. den här åtgärden är ett kompileringsbeslut. Endast en referens på 8 byte lagras på rad för kolumner som lagras utanför rad. Mer information finns i Tabell- och radstorlek i minnesoptimerade tabeller.
Byte i källtext för en lagrad procedur Mindre batchstorlek eller 250 MB
Byte per varchar(max), varbinary(max), xml, texteller image kolumn 2^31-1
Tecken per ntext kolumn nvarchar(max) 2^30-1
Grupperade index per tabell 1
Kolumner i GROUP BY, ORDER BY Begränsas endast av antalet byte
Kolumner eller uttryck i en eller GROUP BY WITH ROLLUP -GROUP BY WITH CUBEinstruktion 10
Kolumner per indexnyckel 32 Om tabellen innehåller ett eller flera XML-index är klustringsnyckeln i användartabellen begränsad till 31 kolumner eftersom XML-kolumnen läggs till i klustringsnyckeln för det primära XML-indexet. Du kan inkludera icke-nyckelkolumner i ett icke-grupperat index för att undvika begränsningen av högst 32 nyckelkolumner. Mer information finns i Skapa index med inkluderade kolumner.
Kolumner per sekundärnyckel eller primärnyckel 32
Kolumner per INSERT instruktion 4,096
Kolumner per SELECT instruktion 4,096
Kolumner per tabell 1,024 Tabeller som innehåller glesa kolumnuppsättningar innehåller upp till 30 000 kolumner. Se Använda kolumnuppsättningar.
Kolumner per UPDATE instruktion 4,096 Olika gränser gäller för Använd kolumnuppsättningar.
Kolumner per vy 1,024
Anslutningar per klient Maximalt värde för konfigurerade anslutningar
Databasstorlek 524 272 terabyte
Databaser per instans av SQL Server 32,767
Filgrupper per databas 32,767
Filgrupper per databas för minnesoptimerade data 1
Filer per databas 32,767
Filstorlek (data) 16 terabyte
Filstorlek (logg) 2 terabyte
Datafiler för minnesoptimerade data per databas 4 096 i SQL Server 2014 (12.x). Gränsen är mindre strikt för SQL Server 2016 (13.x) och senare.
Deltafil per datafil för minnesoptimerade data 1
Tabellreferenser för sekundärnyckel per tabell Utgående = 253.
Inkommande = 10 000.
Begränsningar finns i Skapa sekundärnyckelrelationer.
Identifierarlängd (i tecken) 128
Instanser per dator 50 instanser på en fristående server.

25 redundansklusterinstanser när du använder en delad klusterenhet som lagring.
50 redundansklusterinstanser med SMB-filresurser som lagringsalternativ.
Index per minnesoptimerad tabell 999 startar SQL Server 2017 (14.x) och i Azure SQL Database.

8 i SQL Server 2016 (13.x) och SQL Server 2014 (12.x).
Lås per anslutning Maximalt antal lås per server
Lås per instans av SQL Server Begränsas endast av minne Det här värdet är för statisk låsallokering. Dynamiska lås begränsas endast av minne.
Kapslade lagrade procedurnivåer 32 Om en lagrad procedur har åtkomst till fler än 64 databaser eller fler än två databaser i interfoliering får du ett fel.
Kapslade underfrågor 32
Kapslade transaktioner 4,294,967,296
Kapslade utlösarnivåer 32
Icke-grupperade index per tabell 999
Antal distinkta uttryck i GROUP BY -satsen när något av följande finns: CUBE, , ROLLUPGROUPING SETS, , WITH CUBE,WITH ROLLUP 32
Antal grupperingsuppsättningar som genereras av operatorer i GROUP BY -satsen 4,096
Parametrar per lagrad procedur 2,100
Parametrar per användardefinierad funktion 2,100
REFERENCES per tabell 253
Rader per tabell Begränsad av tillgängligt lagringsutrymme
Tabeller per databas Begränsas av totalt antal objekt i en databas Objekt inkluderar tabeller, vyer, lagrade procedurer, användardefinierade funktioner, utlösare, regler, standardvärden och begränsningar. Summan av antalet alla objekt i en databas får inte överstiga 2 147 483 647.
Partitioner per partitionerad tabell eller index 15,000
Statistik över icke-indexerade kolumner 30,000
Tabeller per SELECT instruktion Begränsas endast av tillgängliga resurser
Utlösare per tabell Begränsas av antalet objekt i en databas Objekt inkluderar tabeller, vyer, lagrade procedurer, användardefinierade funktioner, utlösare, regler, standardvärden och begränsningar. Summan av antalet alla objekt i en databas får inte överstiga 2 147 483 647.
Användaranslutningar 32,767
XML-index 249

SQL Server-programobjekt på datanivå

Maximala värden för olika objekt som har testats i SQL Server-datanivåprogram (DAC).

SQL Server DAC-objekt Högsta värden för SQL Server (64-bitars) Ytterligare information
Databaser per DAC 1
Objekt per DAC Begränsas av antalet objekt i en databas eller tillgängligt minne. Typer av objekt som ingår i gränsen är användare, tabeller, vyer, lagrade procedurer, användardefinierade funktioner, användardefinierad datatyp, databasroller, scheman och användardefinierade tabelltyper.

Replikeringsobjekt

Maximala värden för olika objekt som definierats i SQL Server-replikering.

SQL Server Replication-objekt Högsta värden för SQL Server
(64-bitars)
Ytterligare information
Artiklar (sammanslagningspublikation) 2,048
Artiklar (ögonblicksbild eller transaktionspublikation) 32,767
Kolumner i en tabell (sammanslagningspublikation) 246 Om radspårning används för konfliktidentifiering (standard) kan bastabellen innehålla högst 1 024 kolumner. Publikationen måste dock filtrera artikeln så att högst 246 kolumner publiceras. Om kolumnspårning används kan bastabellen innehålla högst 246 kolumner.
Kolumner i en tabell (SQL Server-ögonblicksbild eller transaktionspublikation) 1,000 Bastabellen kan innehålla det maximala antalet kolumner som kan tillåtas i SQL Server-publikationsdatabasen (1 024), men kolumner måste filtreras från artikeln om de överskrider det högsta angivna värdet för publikationstypen.
Kolumner i en tabell (Oracle-ögonblicksbild eller transaktionspublikation) 995 Bastabellen kan innehålla det maximala antalet kolumner som kan tillåtas i SQL Server-publikationsdatabasen (1 024), men kolumner måste filtreras från artikeln om de överskrider det högsta angivna värdet för publikationstypen.
Byte för en kolumn som används i ett radfilter (sammanslagningspublikation) 1,024
Byte för en kolumn som används i ett radfilter (ögonblicksbild eller transaktionspublikation) 8,000