Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 |