Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: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 ключевых столбцов. Дополнительные сведения см. в разделе "Создание индексов с включенными столбцами". |
| Количество столбцов на каждый внешний или первичный ключ | 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. |
Ограничения см. в разделе "Создание связей внешнего ключа". |
| Длина идентификатора (в символах) | 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 | |
| Объекты на каждый DAC | Ограничено числом объектов в базе данных или доступной памятью. | Типы объектов, включенные в ограничения, — пользователи, таблицы, представления, хранимые процедуры, определяемые пользователем функции, определяемые пользователем типы данных, роли баз данных, схемы и определяемые пользователем табличные типы. |
Объекты репликации
Максимальные значения для различных объектов, определяемых в Репликации 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 |