Udostępnij za pomocą


Maksymalna specyfikacja pojemności dla programu SQL Server

Dotyczy:SQL Server

W tym artykule przedstawiono maksymalne rozmiary i liczby różnych obiektów zdefiniowanych w programie SQL Server 2016 (13.x) i nowszych wersjach. Jeśli chcesz wyświetlić limity wersji, zobacz Limity pojemności obliczeniowej według wersji programu SQL Server.

W przypadku programu SQL Server 2014 (12.x) zobacz Maksymalna specyfikacja pojemności dla programu SQL Server 2014.

Obiekty silnika bazy danych

Maksymalna wartość różnych obiektów zdefiniowanych w bazach danych programu SQL Server lub przywołyna w instrukcjach Transact-SQL.

Obiekt silnika bazy danych programu SQL Server Maksymalna wartość programu SQL Server (64-bitowa) Dodatkowe informacje
Rozmiar partii 65 536 * (rozmiar pakietu sieciowego) Rozmiar pakietu sieciowego to wielkość pakietów strumienia danych tabelarycznych (TDS) używanych do komunikacji między relacyjnym silnikiem bazy danych a aplikacjami. Domyślny rozmiar pakietu to 4 KB. Rozmiar pakietów sieciowych kontroluje tę opcję konfiguracji.
Długość bajtu ciągu zawierającego instrukcje Transact-SQL (rozmiar partii) 65 536 * (rozmiar pakietu sieciowego) Rozmiar pakietu sieciowego to rozmiar pakietów strumienia danych relacyjno-tabelarycznych (TDS) używanych do komunikacji między relacyjnym silnikiem bazy danych a aplikacjami. Domyślny rozmiar pakietu to 4 KB i jest kontrolowany przez opcję konfiguracji rozmiaru pakietów sieciowych.
Bajty na kolumnę krótkiego ciągu znaków 8,000
Bajty na jednostki GROUP BY, ORDER BY 8,060
Bajty na klucz indeksu 900 bajtów dla indeksu klastrowanego. 1700 bajtów dla indeksu nieklastrowanego. W przypadku programu SQL Server 2014 (12.x) i starszych wszystkie wersje obsługują 900 bajtów dla wszystkich typów indeksów. Maksymalna liczba bajtów w klastrowanym kluczu indeksu nie może przekraczać 900. W przypadku klucza indeksu nieklastrowanego maksymalna wartość to 1700 bajtów.

Klucz można zdefiniować przy użyciu kolumn o zmiennej długości, których maksymalne rozmiary sumują się do więcej niż limit. Jednak łączne rozmiary danych w tych kolumnach nigdy nie mogą przekraczać limitu.
W indeksie nieklastrowanym można uwzględnić dodatkowe kolumny inne niż kluczowe i nie są one uwzględniane w limicie rozmiaru klucza. Kolumny inne niż kluczowe mogą pomóc niektórym zapytaniom w lepszej wydajności.
Bajty na klucz indeksu dla tabel zoptymalizowanych pod kątem pamięci 2500 bajtów dla indeksu nieklastrowanego. Brak limitu dla indeksu skrótu, o ile wszystkie klucze indeksu mieszczą się w wierszu. W tabeli zoptymalizowanej pod kątem pamięci indeks nieklastrowany nie może mieć kolumn kluczy, których maksymalny zadeklarowany rozmiar przekracza 2500 bajtów. Nie ma znaczenia, czy rzeczywiste dane w kolumnach kluczy byłyby krótsze niż maksymalne zadeklarowane rozmiary.

W przypadku klucza indeksu skrótu nie ma twardego limitu rozmiaru.
W przypadku indeksów w tabelach zoptymalizowanych pod kątem pamięci nie ma pojęcia zawartych kolumn, ponieważ wszystkie indeksy z natury obejmują wszystkie kolumny.
W przypadku tabeli zoptymalizowanej pod kątem pamięci, mimo że rozmiar wiersza wynosi 8060 bajtów, niektóre kolumny o zmiennej długości mogą być przechowywane fizycznie poza tymi 8060 bajtami. Jednak maksymalne zadeklarowane rozmiary wszystkich kolumn kluczy dla wszystkich indeksów w tabeli oraz dodatkowe kolumny o stałej długości w tabeli muszą mieścić się w 8060 bajtach.
Bajty na klucz obcy 900
Bajty na klucz podstawowy 900
Bajty na jeden wiersz 8,060 Program SQL Server obsługuje przechowywanie przepełnienia wierszy, które umożliwia przenoszenie kolumn o zmiennej długości poza wiersz. Tylko 24-bajtowy korzeń jest przechowywany w rekordu głównym dla kolumn o zmiennej długości przechowywanych poza wierszem. Aby uzyskać więcej informacji, zobacz Obsługa dużych wierszy.
Bajty na wiersz w tabelach zoptymalizowanych pod kątem pamięci 8,060 Tabele zoptymalizowane pod kątem pamięci w SQL Server 2016 (13.x) i nowszych obsługują przechowywanie poza wierszem. Kolumny o zmiennej długości są wypychane poza wiersz, jeśli maksymalny rozmiar wszystkich kolumn w tabeli przekracza 8060 bajtów; ta akcja jest decyzją w czasie kompilacji. Tylko odwołanie 8-bajtowe jest przechowywane w wierszu w przypadku kolumn umieszczonych poza wierszem. Aby uzyskać więcej informacji, zobacz Tabela i rozmiar wiersza w tabelach zoptymalizowanych pod kątem pamięci.
Bajty w tekście źródłowym procedury składowanej Mniejszy rozmiar partii lub 250 MB
Bajty na kolumnę varchar(max), varbinary(max), xml, text lub image 2^31-1
Znaki na kolumnę ntext lub nvarchar(max) 2^30-1
Indeksy klastrowane na każdą tabelę 1
Kolumny w elemencie GROUP BY, ORDER BY Ograniczone tylko przez liczbę bajtów
Kolumny lub wyrażenia w oświadczeniu GROUP BY WITH CUBE lub GROUP BY WITH ROLLUP 10
Kolumny na jeden klucz indeksu 32 Jeśli tabela zawiera co najmniej jeden indeks XML, klucz klastrowania tabeli użytkownika jest ograniczony do 31 kolumn, ponieważ kolumna XML jest dodawana do klucza klastrowania podstawowego indeksu XML. Możesz uwzględnić kolumny inne niż klucz w indeksie nieklastrowanym, aby uniknąć ograniczenia maksymalnie 32 kolumn kluczy. Aby uzyskać więcej informacji, zobacz Tworzenie indeksów z dołączonymi kolumnami.
Kolumny dla klucza obcego lub klucza podstawowego 32
Kolumny dla INSERT instrukcji 4,096
Kolumny na SELECT klauzulę 4,096
Kolumny na tabelę 1,024 Tabele, które zawierają rozrzedane zestawy kolumn, obejmują maksymalnie 30 000 kolumn. Zobacz Używanie zestawów kolumn.
Kolumny dla UPDATE instrukcji 4,096 Różne limity mają zastosowanie do używania zestawów kolumn.
Kolumny na każdy widok 1,024
Połączenia na klienta Maksymalna wartość skonfigurowanych połączeń
Rozmiar bazy danych 524 272 terabajty
Bazy danych na każdą instancję serwera SQL Server 32,767
Grupy plików na bazę danych 32,767
Grupy plików na bazę danych dla danych zoptymalizowanych pod kątem pamięci 1
Pliki na bazę danych 32,767
Rozmiar pliku (dane) 16 terabajtów
Rozmiar pliku (log) 2 terabajty
Pliki danych zoptymalizowane pod kątem pamięci na każdą bazę danych 4096 w programie SQL Server 2014 (12.x). Limit jest mniej rygorystyczny w programie SQL Server 2016 (13.x) i nowszych wersjach.
Plik różnicowy na plik danych dla danych zoptymalizowanych pod kątem pamięci 1
Odwołania do tabeli kluczy obcych Wychodzące = 253.
Przychodzące = 10 000.
Aby uzyskać informacje o ograniczeniach, zobacz Tworzenie relacji kluczy obcych.
Długość identyfikatora (w znakach) 128
Instancje na komputer 50 wystąpień na serwerze autonomicznym.

25 wystąpień klastra trybu failover w przypadku używania udostępnionego dysku klastra jako magazynu.
50 instancji klastra failover z udziałami plików SMB jako opcja magazynowania.
Indeksy na tabelę zoptymalizowaną pod kątem pamięci 999 począwszy od programu SQL Server 2017 (14.x) i w usłudze Azure SQL Database.

8 w SQL Server 2016 (13.x) i SQL Server 2014 (12.x).
Blokady na połączenie Maksymalna liczba blokad na serwer
Blokady na każdą instancję SQL Server Ograniczone tylko przez pamięć Ta wartość dotyczy alokacji blokady statycznej. Blokady dynamiczne są ograniczone tylko przez pamięć.
Poziomy zagnieżdżonej procedury składowanej 32 Jeśli procedura składowana uzyskuje dostęp do więcej niż 64 baz danych lub do więcej niż dwóch baz danych naprzemiennie, zostanie wyświetlony błąd.
Zagnieżdżone podzapytania 32
Transakcje zagnieżdżone 4,294,967,296
Poziomy zagnieżdżonego wyzwalacza 32
Indeksy nieklastrowane w tabeli 999
Liczba unikatowych wyrażeń w klauzuli GROUP BY , gdy istnieją dowolne z następujących elementów: CUBE, , ROLLUPGROUPING SETS, , WITH CUBEWITH ROLLUP 32
Liczba zestawów grupowania generowanych przez operatory w klauzuli GROUP BY 4,096
Parametry na procedurę składowaną 2,100
Parametry dla funkcji zdefiniowanej przez użytkownika 2,100
REFERENCES na tabelę 253
Liczba wierszy na tabelę Ograniczone przez dostępne miejsce pamięci
Tabele na każdą bazę danych Ograniczone przez całkowitą liczbę obiektów w bazie danych Obiekty obejmują tabele, widoki, procedury składowane, funkcje zdefiniowane przez użytkownika, wyzwalacze, reguły, wartości domyślne i ograniczenia. Suma liczby wszystkich obiektów w bazie danych nie może przekroczyć 2147 483 647.
Partycje na każdą partycjonowaną tabelę lub indeks 15,000
Statystyki dotyczące kolumn nieindeksowanych 30,000
Tabele na SELECT instrukcję Ograniczone tylko przez dostępne zasoby
Wyzwalacze dla każdej tabeli Ograniczona przez liczbę obiektów w bazie danych Obiekty obejmują tabele, widoki, procedury składowane, funkcje zdefiniowane przez użytkownika, wyzwalacze, reguły, wartości domyślne i ograniczenia. Suma liczby wszystkich obiektów w bazie danych nie może przekroczyć 2147 483 647.
Połączenia użytkowników 32,767
Indeksy XML 249

Obiekty aplikacji warstwy danych programu SQL Server

Maksymalne wartości różnych obiektów, które zostały przetestowane w aplikacjach warstwy danych programu SQL Server (DAC).

Obiekt DAC programu SQL Server Maksymalna wartość programu SQL Server (64-bitowa) Dodatkowe informacje
Bazy danych na jednostkę DAC 1
Obiekty na DAC Ograniczone przez liczbę obiektów w bazie danych lub dostępnej pamięci. Typy obiektów uwzględnionych w limicie to użytkownicy, tabele, widoki, procedury składowane, funkcje zdefiniowane przez użytkownika, typ danych zdefiniowany przez użytkownika, role bazy danych, schematy i typy tabel zdefiniowane przez użytkownika.

Obiekty replikacji

Maksymalne wartości różnych obiektów zdefiniowanych w replikacji programu SQL Server.

Obiekt replikacji programu SQL Server Maksymalne wartości dla programu SQL Server
(64-bitowy)
Dodatkowe informacje
Artykuły (scalanie publikacji) 2,048
Artykuły (migawka lub publikacja transakcyjna) 32,767
Kolumny w tabeli (łączenie publikacji) 246 Jeśli śledzenie wierszy jest używane do wykrywania konfliktów (ustawienie domyślne), tabela podstawowa może zawierać maksymalnie 1024 kolumny. Jednak publikacja musi filtrować artykuł, aby publikować maksymalnie 246 kolumn. Jeśli jest używane śledzenie kolumn, tabela podstawowa może zawierać maksymalnie 246 kolumn.
Kolumny w tabeli (migawka programu SQL Server lub publikacja transakcyjna) 1 000 Tabela podstawowa może zawierać maksymalną liczbę kolumn dozwolonych w bazie danych publikacji programu SQL Server (1024), ale kolumny muszą być filtrowane z artykułu, jeśli przekraczają maksymalną wartość określoną dla typu publikacji.
Kolumny w tabeli (migawka Oracle lub publikacja transakcyjna) 995 Tabela podstawowa może zawierać maksymalną liczbę kolumn dozwolonych w bazie danych publikacji programu SQL Server (1024), ale kolumny muszą być filtrowane z artykułu, jeśli przekraczają maksymalną wartość określoną dla typu publikacji.
Bajty dla kolumny używanej w filtrze wierszy (scalanie publikacji) 1,024
Bajty dla kolumny używanej w filtrze wierszy (migawka lub publikacja transakcyjna) 8,000