В следующих таблицах приведены максимальные размеры и количество для различных объектов, определяемых в компонентах SQL Server.
Ограничения объектов компонента Database Engine
Пункт | Лимит | Комментарий |
---|---|---|
Размер пакета | 65 536 * размер сетевого пакета | Размер сетевого пакета — это размер пакетов потока табличных данных (TDS), которые используются для связи между приложениями и компонентом Database Engine. По умолчанию, он равен 4 КБ, и его управление осуществляется с помощью параметра конфигурации network packet size. |
Байтов на столбец с короткой строкой | 8000 | |
Байтов на GROUP BY, ORDER BY | 8060 | |
Байтов на ключ индекса | 900 | Максимальное число байт в любом ключе индекса не может превышать 900 в SQL Server. Можно определить ключ, использующий столбцы переменной длины, максимальная длина которых может превышать 900 байт при условии, что в эти столбцы не будут вставляться строки объемом более 900 байт данных. В SQL Server в некластеризованный индекс можно включать неключевые столбцы, чтобы избежать ограничения максимального размера индексного ключа, равного 900 байт. |
Байтов на внешний ключ | 900 | |
Байтов на первичный ключ | 900 | |
Байтов на строку | 8060 | SQL Server поддерживает хранение при переполнении строк, что позволяет столбцам переменной длины превышать максимальную длину строки. Для столбцов переменной длины, выходящих за границу строки, в главной записи хранится только корень длиной 24-байта. Поэтому фактический предел длины выше, чем в предыдущих версиях SQL Server. |
Байтов в исходном тексте хранимой процедуры | Меньше размера пакета или 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 или WITH ROLLUP | 10 | |
Столбцов на ключ индекса | 16 | Если в таблице имеется один или несколько индексов XML, ключ кластеризации пользовательской таблицы ограничивается 15 столбцами, потому что XML-столбец добавляется к ключу кластеризации первичного XML-индекса. В SQL Server в некластеризованный индекс можно включать неключевые столбцы, чтобы избежать ограничения максимального количества ключевых столбцов, равного 16. |
Столбцов на внешний ключ | 16 | |
Столбцов на первичный ключ | 16 | |
Столбцов на неширокую таблицу | 1024 | |
Столбцов на широкую таблицу | 30000 | |
Столбцов на инструкцию SELECT | 4096 | |
Столбцов на инструкцию INSERT | 4096 | |
Соединений на одного клиента | Максимальное значение настроенных соединений | |
Размер базы данных | 524 272 ТБ | |
Баз данных на один экземпляр SQL Server | 32767 | |
Файловых групп на одну базу данных | 32767 | |
Файлов на одну базу данных | 32767 | |
Размер файла (данные) | 16 ТБ | |
Размер файла (журнал) | 2 ТБ | |
Ссылок на таблицы внешнего ключа для таблицы | 253 | Хотя таблица может содержать неограниченное число ограничений FOREIGN KEY, рекомендуемый максимум равен 253. В зависимости от конфигурации оборудования, на котором установлен SQL Server, определение дополнительных ограничений FOREIGN KEY может потребовать слишком много ресурсов для обработки с точки зрения оптимизатора запросов. |
Длина идентификатора (в символах) | 128 | |
Экземпляров на один компьютер | 50 | экземпляров на изолированном сервере для всех выпусков. 25 экземпляров в кластере отработки отказа. |
Длина строки, содержащей инструкции SQL (размер пакета) | 65 536 * размер сетевого пакета | Размер сетевого пакета — это размер пакетов потока табличных данных (TDS), которые используются для связи между приложениями и компонентом Database Engine. По умолчанию, он равен 4 КБ, и его управление осуществляется с помощью параметра конфигурации network packet size. |
Блокировок на соединение | Максимальное число блокировок на сервер | |
Блокировок на экземпляр SQL Server | до 2 147 483 647 Для 64 разрядной версии ограничено только объемом памяти. |
Это значение относится только к статическим блокировкам. Количество динамических блокировок ограничивается только объемом памяти. |
Уровней вложенных хранимых процедур | 32 | Если хранимая процедура обращается больше чем к 8 базам данных или более чем к двум базам в режиме чередования, может возникнуть ошибка. |
Вложенных запросов | 32 | |
Уровней вложенных триггеров | 32 | |
Количество некластеризованных индексов у таблицы | 999 | |
Количество уникальных выражений в предложении GROUP BY, если присутствует одна из следующих конструкций: CUBE, ROLLUP, GROUPING SETS, WITH CUBE, WITH ROLLUP | 32 | |
Количество группирующих наборов, сформированных операторами в предложении GROUP BY | 4096 | |
Параметров на одну хранимую процедуру | 2100 | |
Параметров на одну пользовательскую функцию | 2100 | |
REFERENCES на таблицу | 253 | |
Строк на таблицу | Ограничено доступной памятью | |
Таблиц на одну базу данных | Ограничено числом объектов в базе данных | Объекты базы данных включают такие объекты, как таблицы, представления, хранимые процедуры, пользовательские функции, триггеры, правила, значения по умолчанию и ограничения. Суммарное число всех объектов в базе данных не может превышать 2 147 483 647. |
Секций на секционированную таблицу или индекс | 1,000 | |
Статистических показателей неиндексированных столбцов | 30,000 | |
Таблиц на инструкцию SELECT | Ограничивается только доступными ресурсами | |
Триггеров на таблицу | Ограничено числом объектов в базе данных | Объекты базы данных включают такие объекты, как таблицы, представления, хранимые процедуры, пользовательские функции, триггеры, правила, значения по умолчанию и ограничения. Суммарное число всех объектов в базе данных не может превышать 2 147 483 647. |
Столбцов на инструкцию UPDATE (широкие таблицы) | 4096 | |
Соединения пользователей | 32767 | |
XML-индексов | 249 |
Ограничения объектов программы SQL Server
Пункт | Лимит | Комментарий |
---|---|---|
Компьютеры (физические или виртуальные машины) в расчете на одну программу SQL Server | 100 | |
Экземпляров на компьютер SQL Server | 5 | |
Общее число экземпляров SQL Server на одну программу SQL Server | 200 | SQL Server 2008 R2 Datacenter поддерживает программу SQL Server с количеством управляемых экземпляров SQL Server не более 200. SQL Server 2008 R2 Enterprise поддерживает программу SQL Server с количеством управляемых экземпляров SQL Server не более 25 |
Пользовательских баз данных на экземпляр SQL Server, включая приложения на уровне данных | 50 | |
Общее число пользовательских баз данных на одну программу SQL Server | 1000 | |
Файловых групп на одну базу данных | 1 | |
Файлов данных на одну файловую группу | 1 | |
Файлов журналов на одну базу данных | 1 | |
Томов на компьютер | 3 |