Спецификации максимальной емкости для SQL Server
Область применения: SQL Server
В этой статье приведены максимальные размеры и количество для разных объектов, определяемых в SQL Server 2016 (13.x) и более поздних версий. Если вы хотите просмотреть ограничения выпуска, ознакомьтесь с разделом Ограничения емкости вычислений по выпуску SQL Server.
Сведения об SQL Server версии 2014 (12.x) см. в статье Спецификации максимально допустимых параметров SQL Server 2014.
объекты ядро СУБД
Максимальные значения различных объектов, определяемых в базах данных SQL Server или ссылающихся на них инструкциях Transact-SQL.
Объект ядро СУБД SQL Server | Максимальные значения для SQL Server (64-разрядная версия) | Дополнительная информация |
---|---|---|
Размер пакета | 65 536 * (размер сетевого пакета) | Размер сетевого пакета — это размер пакетов потока табличных данных (TDS), которые используются для обмена данными между приложениями и реляционным ядром СУБД. Размер пакета по умолчанию составляет 4 КБ. Размер сетевого пакета определяет этот параметр конфигурации. |
Длина (в байтах) строки, содержащей инструкции Transact-SQL (размер пакета) | 65 536 * (размер сетевого пакета) | Размер сетевого пакета — это размер пакетов потока табличных данных (TDS), которые используются для обмена данными между приложениями и реляционным ядром СУБД. По умолчанию размер пакета равен 4 КБ, а его настройка осуществляется с помощью параметра конфигурации network packet size. |
Байтов на столбец с короткой строкой | 8000 | |
Байтов на GROUP BY , ORDER BY |
8060 | |
Байтов на ключ индекса | 900 байтов для кластеризованного индекса. 1700 байт для некластеризованного индекса. До SQL Server 2014 (12.x) все версии поддерживали 900 байт для всех типов индекса. | Максимальное число байтов в любом ключе индекса не может превышать 900. Для ключа некластеризованного индекса максимум составляет 1700 байт. Можно определить ключ, использующий столбцы переменной длины, максимальная длина которых превышает лимит. При этом совокупные размеры данных в этих столбцах ни в коем случае не могут превышать лимит. В некластеризованный индекс можно включать дополнительные неключевые столбцы — при расчете предельного размера ключа они не учитываются. Неключевые столбцы могут помочь в выполнении некоторых запросов. |
Байт на ключ индекса в оптимизированных для памяти таблицах | 2500 байт для некластеризованного индекса. Пока все ключи индекса входят в строку, хэш-индекс не ограничивается. | В таблице, оптимизированной для памяти, некластеризованный индекс не может иметь ключевые столбцы, максимальные заявленные размеры которых не превышают 2500 байт. Соотношение размера фактических данных в столбцах ключей и максимальных заявленных размеров несущественно. Размер ключа для хэш-индекса не ограничивается. Для индексов в таблицах, оптимизированных для памяти, понятие включенных столбцов не используется, поскольку все индексы по определению охватывают все столбцы. Несмотря на то, что размер строки для таблиц, оптимизированных для памяти, составляет 8060 байт, размер некоторых столбцов переменной длины, хранящихся вне таблицы, может превышать 8060 байт. Тем не менее объявленные максимальные размеры всех ключевых столбцов для всех индексов в таблице в сумме с фиксированной длиной добавленных в эту таблицу столбцов должны соответствовать ограничению в 8060 байт. |
Байтов на внешний ключ | 900 | |
Байтов на первичный ключ | 900 | |
Байтов на строку | 8060 | SQL Server поддерживает хранилище переполнения строк, что позволяет отправлять столбцы переменной длины вне строки. В основной записи для столбцов переменной длины, отправленных из строки, хранится только 24-байтовый корень. Дополнительные сведения о поддержке см. в разделе Поддержка больших строк. |
Байтов на строку в оптимизированных для памяти таблицах | 8060 | Оптимизированные для памяти таблицы в SQL Server 2016 (13.x) и более поздних версий поддерживают хранилище вне строк. Столбцы переменной длины вытесняются за пределы строки, если максимальные размеры всех столбцов в таблице превышают 8060 байт; это действие представляет собой решение, которое используется во время компиляции. Для столбцов, которые хранятся вне строки, в строке сохраняются только 8-байтовые ссылки. Дополнительные сведения см. в статье Размер строк и таблицы для таблиц, оптимизированных для памяти. |
Байтов в исходном тексте хранимой процедуры | Меньше размера пакета или 250 МБ | |
Байтов на столбец varchar(max) , varbinary(max) , xml , text или image |
2^31-1 | |
Символов на столбец ntext или nvarchar(max) |
2^30-1 | |
Количество кластеризованных индексов в таблице | 1 | |
Столбцы в GROUP BY , ORDER BY |
Ограничивается только числом байтов | |
Столбцы или выражения в инструкции GROUP BY WITH CUBE или GROUP BY WITH ROLLUP |
10 | |
Столбцов на ключ индекса | 32 | Если в таблице имеется один или несколько индексов XML, ключ кластеризации пользовательской таблицы ограничивается 31 столбцом, потому что XML-столбец добавляется к ключу кластеризации первичного XML-индекса. Столбцы, не являющиеся ключами, можно включить в некластеризованный индекс, чтобы избежать ограничения не более 32 ключевых столбцов. Дополнительные сведения см. в статье Create Indexes with Included Columns. |
Столбцов на внешний или первичный ключ | 32 | |
Столбцов на инструкцию INSERT |
4096 | |
Столбцов на инструкцию SELECT |
4096 | |
Столбцов на таблицу | 1024 | Таблицы с наборами разреженных столбцов содержат до 30 000 столбцов. См. раздел Наборы разреженных столбцов. |
Столбцов на инструкцию UPDATE |
4096 | К наборам разреженных столбцов применяются различные ограничения. |
Столбцов на представление | 1024 | |
Соединений на одного клиента | Максимальное значение настроенных соединений | |
Размер базы данных | 524 272 ТБ | |
Базы данных на экземпляр SQL Server | 32 767 | |
Файловых групп на одну базу данных | 32 767 | |
Файловые группы на базу данных для данных, оптимизированных для памяти | 1 | |
Файлов на одну базу данных | 32 767 | |
Размер файла (данные) | 16 ТБ | |
Размер файла (журнал) | 2 ТБ | |
Файлы данных для оптимизированных для памяти данных на одну базу данных | 4096 в SQL Server 2014 (12.x). Ограничение менее строго в SQL Server 2016 (13.x) и более поздних версий. | |
Разностный файл на файл данных для данных, оптимизированных для памяти | 1 | |
Ссылок на таблицы внешнего ключа для таблицы | Исходящие = 253. Входящие = 10 000. |
Ограничения см. в разделе Create Foreign Key Relationships. |
Длина идентификатора (в символах) | 128 | |
Экземпляров на один компьютер | 50 экземпляров на отдельном сервере. 25 экземпляров отказоустойчивого кластера при использовании общих дисков кластера в качестве хранилища. 50 экземпляров отказоустойчивого кластера с общими файловыми ресурсами SMB в качестве хранилища. |
|
Индексы на оптимизированную для памяти таблицу | 999 начиная с SQL Server 2017 (14.x) и в Базе данных SQL Azure. 8 в SQL Server 2016 (13.x) и SQL Server 2014 (12.x). |
|
Блокировок на соединение | Максимальное число блокировок на сервер | |
Блокировки для каждого экземпляра SQL Server | Ограничено только объемом памяти | Это значение относится только к статическим блокировкам. Количество динамических блокировок ограничивается только объемом памяти. |
Уровней вложенных хранимых процедур | 32 | Если хранимая процедура обращается более чем к 64 базам данных или более чем к двум базам в режиме чередования, может возникнуть ошибка. |
Вложенных запросов | 32 | |
Вложенных транзакций | 4 294 967 296 | |
Уровней вложенных триггеров | 32 | |
Количество некластеризованных индексов на одну таблицу | 999 | |
Количество уникальных выражений в предложении GROUP BY , если присутствует одна из следующих конструкций: CUBE , ROLLUP , GROUPING SETS , WITH CUBE , WITH ROLLUP |
32 | |
Количество группирующих наборов, сформированных операторами в предложении GROUP BY |
4096 | |
Параметров на одну хранимую процедуру | 2100 | |
Параметров на одну определяемую пользователем функцию | 2100 | |
REFERENCES на таблицу | 253 | |
Строк на таблицу | Ограничено доступной памятью | |
Таблиц на одну базу данных | Ограничено общим числом объектов в базе данных | Объекты включают такие объекты, как таблицы, представления, хранимые процедуры, пользовательские функции, триггеры, правила, значения по умолчанию и ограничения. Суммарное число всех объектов в базе данных не может превышать 2 147 483 647. |
Секций на секционированную таблицу или индекс | 15 000 | |
Статистических показателей неиндексированных столбцов | 30,000 | |
Таблиц на инструкцию SELECT |
Ограничивается только доступными ресурсами | |
Триггеров на таблицу | Ограничено числом объектов в базе данных | Объекты включают такие объекты, как таблицы, представления, хранимые процедуры, пользовательские функции, триггеры, правила, значения по умолчанию и ограничения. Суммарное число всех объектов в базе данных не может превышать 2 147 483 647. |
Соединения пользователей | 32 767 | |
XML-индексы | 249 |
Объекты приложений уровня данных SQL Server
Максимальные значения различных объектов, которые были протестированы в приложениях уровня данных SQL Server.
Объект DAC SQL Server | Максимальные значения для SQL Server (64-разрядная версия) | Дополнительная информация: |
---|---|---|
Баз данных на DAC | 1 | |
Объекты для каждого приложения уровня данных | Ограничено числом объектов в базе данных или доступной памятью. | Типы объектов, включенные в ограничения, — пользователи, таблицы, представления, хранимые процедуры, определяемые пользователем функции, определяемые пользователем типы данных, роли баз данных, схемы и определяемые пользователем табличные типы. |
Объекты репликации
Максимальные значения для различных объектов, определяемых в Репликации SQL Server.
объект Репликация SQL Server | Максимальные значения для SQL Server (64-разрядная версия) |
Дополнительная информация: |
---|---|---|
Статей (публикация слиянием) | 2048 | |
Статей (моментальный снимок или публикация транзакций) | 32 767 | |
Столбцов в таблице (публикация слиянием) | 246 | Если отслеживание строк используется для обнаружения конфликтов (по умолчанию), базовая таблица может содержать не более 1024 столбцов. Однако публикация должна отфильтровать статью таким образом, чтобы было опубликовано не более 246 столбцов. Если применяется трассировка на уровне столбцов, базовая таблица может содержать не более 246 столбцов. |
Столбцы в таблице (моментальный снимок SQL Server или публикация транзакций) | 1,000 | Базовая таблица может включать максимальное количество столбцов, разрешенное в базе данных публикации SQL Server (1024), но столбцы должны быть отфильтрованы из статьи, если они превышают максимальное количество, заданное для данного типа публикации. |
Столбцов в таблице (моментальный снимок или публикация транзакций Oracle) | 995 | Базовая таблица может включать максимальное количество столбцов, разрешенное в базе данных публикации SQL Server (1024), но столбцы должны быть отфильтрованы из статьи, если они превышают максимальное количество, заданное для данного типа публикации. |
Байтов на столбец, используемый в фильтре строк (публикация слиянием) | 1024 | |
Байтов на столбец, используемый в фильтре строк (моментальный снимок или публикация транзакций) | 8000 |