ЛИМИТ [французское limite от латинского limes — предел], предельная норма, дозволенное количество чего-либо, ограничение, предел, грань.

Лимиты в Oracle существуют на нескольких уровнях. Обычно существует жёстко запрограммированное ограничение в базе данных, которое не может быть превышено. Но, в то же самое время, оно может быть еще более ограниченно, для какой либо операционной системы.

Ограничения базы данных разделены на четыре основные категории:

Ограничения типов данных

Тип данныхЛимитКомментарий
BFILE Максимальный размер: 4 GB

Максимальный размер имени файла: 255 символов

Максимальный размер имени директории: 30 символов

Максимальное число открытых BFILEs: комментарий
Максимальное число BFILEs лимитируется значением инициализационного параметра SESSION_MAX_OPEN_FILES, которое в свою очередь ограничивается максимально возможным числом открытых файлов в операционной системе.
BLOB Максимальный размер: (4 GB - 1) * DB_BLOCK_SIZE инициализационный параметр (8 TB to 128 TB) Число LOB столбцов ограничено только максимальным количеством столбцов на таблицу, то есть, 1000
CHAR Максимальный размер: 2000 байт  
CHAR VARYING Максимальный размер: 4000 байт  
СLOB Максимальный размер: (4 GB - 1) * DB_BLOCK_SIZE инициализационный параметр (8 TB to 128 TB) Число LOB столбцов ограничено только максимальным количеством столбцов на таблицу, то есть, 1000
Литералы (символы или числа в SQL или PL/SQL) Максимальный размер: 4000 символов  
LONG Максимальный размер: 2 GB – 1 Таблица может иметь только один LONG столбец.
NCHAR Максимальный размер: 2000 символов  
NCHAR VARYING Максимальный размер: 4000 символов  
NCLOB Максимальный размер: (4 GB - 1) * DB_BLOCK_SIZE инициализационный параметр (8 TB to 128 TB) Число LOB столбцов ограничено только максимальным количеством столбцов на таблицу, то есть, 1000
NUMBER Положительные числа в диапазоне 1 x 10-130 до 9.99... 9 x 10125 с 38 значимыми цифрами Точность может быть задана в диапазоне от 1 до 38 десятичных цифр. Масштаб может варьироваться от -84 (слева от десятичной точки) до 127 (справа от десятичной точки).
Положительные числа в диапазоне 1 x 10-130 до 9.99... 9 x 10125 с 38 значимыми цифрами
RAW Максимальный размер: 2000 байтов  
VARCHAR Максимальный размер: 4000 байтов  
VARCHAR2 Максимальный размер: 4000 байтов  

Физические ограничения

ПунктТип лимитаЗначение лимита
Размер блока базы данных Минимум 2048 байт; должно быть кратно размеру физического блока операционной системы
Максимум Зависит от операционной системы; не более чем 32 Kбайт
Блоки базы данных Минимальное количество в начальном экстенте сегмента 2 блока
Максимальное количество в файле данных Зависит от системы; типично 222 - 1 блоков
Контрольные файлы Число контрольных файлов Один минимум. Настоятельно рекомендуется два или больше (на отдельных устройствах).
Размер контрольных файлов В зависимости от операционной системы и параметров создания базы данных; максимум 20000 х (размер блока данных)
Файлы данных Максимальное количество в табличном пространстве Зависит от системы; обычно 1022.
Максимальное количество в базе данных 65533

Может быть меньше на некоторых операционных системах

Лимит ограниченн также размером блока базы данных и параметром инициализации DB_FILES для конкретного случая
Экстенты базы данных Максимальное количество в табличном пространстве управляемом по словарю 4 GB * физический размер блока (с модификатором K/M ); 4 GB (с модификатором K/M)
Максимальное количество в локально управляемом табличном пространстве 2 GB * физический размер блока (с модификатором K/M ); 2 GB (с модификатором K/M)
Размер файла базы данных Максимум В зависимости от операционной системы. Ограничен максимальным размером файла оперативной системы; типично 222 байт или 4 Мб (4,194,304) блоков
Общее количество экстентов (MAXEXTENTS) Значение по умолчанию Производное от значения по умолчанию параметра хранения табличного пространства или инициализационного параметра DB_BLOCK_SIZE
Максимум Неограниченно
Журнальные файлы Максимальное количество Лимит задаётся значением параметра MAXLOGFILES в операторе CREATE DATABASE.
Максимальное количество в группе Неограниченно
Размер журнального файла Минимальный 4 Мбайт
Максимальный Лимит операционной системы; обычно 2 GB
Табличные пространства Максимальное количество на одну базу данных 64 К

Количество табличных пространств, не может превышать количества файлов базы данных, поскольку каждое табличное пространство должно включать в себя по крайней мере один файл
Табличные пространства с большими файлами (Bigfile) Количество блоков Табличное пространство с большими файлами(Bigfile) может содержать только один файл данных или временный файл, который в свою очередь может содержать примерно до 4 млрд (232) блоков. Максимальный размер одного файла данных или временного файла составляет 128 терабайт (ТБ) в табличном пространствес 32 Кб. блоками и 32 Тбайт для табличного пространства с 8 Кб. блоками.
Табличные пространства с маленькими файлами (Smallfile) Количество блоков Табличное пространство с маленькими файлами (Smallfile) традиционное табличное пространство Oracle. Может содержать 1022 файлов данных или временных файлов, при этом каждый из файлов может содержать приблизительно до 4 миллионов (222) блоков.
Файл внешних таблиц Максимальный размер В зависимости от операционной системы. Внешняя таблица может состоять из нескольких файлов.

Логические ограничения

ПунктТип лимитаЗначение лимита
GROUP BY оператор Максимальная длина Выражение GROUP BY и все of the неотличные агрегатные функции (для примера SUM, AVG) должны поместиться в пределах одного блока базы данных.
Индексы Максимум на таблицу Неограниченно
Общий размер индексированных столбцов 75% от размера блока базы данных, минус некоторые издержки
Столбцов на таблицу 1000 столбцов максимум
на индекс (или кластеризованный индекс) 32 столбца максимум
на индекс на основе битовой карты 30 столбцов максимум
Ограничения Максимум на столбец Неограниченно
Подзапросы Максимальный уровень подзапросов в SQL операторе

Неограниченно во FROM выражении в верхнем уровне запроса

255 подзапросов в WHERE выражении

Секции Макимальная длина линейного секционного ключа 4 Кб. минус издержки
Макимальное количество столбцов в секционном ключе 16 столбцов
Макимальное количество секций на таблицу или индекс 1024Кб. - 1
Строк Максимальное количество на таблицу Неограниченно
Хранимые пакеты Максимальный размер Ограничения обычно составляет от 2000 до 3000 строк кода.
Лимит каскада триггеров Максимальное значение Зависит от операционной системы, обычно 32
Пользователи и роли Максимум 2 147 483 638
Таблицы Максимум на кластерную таблицу 32 таблицы
Максимум на базу данных Неограниченно

Ограничения процессов и времени выполнения

ПунктТип лимитаЗначение лимита
Экземпляров на базу данных Максимальное количество кластеров экземпляров базы данных на базу данных Зависит от операционной системы
Блокировки Уровня строки Неограниченно
Диспетчер распределённых блокировок Зависит от операционной системы
Размер SGA Максимальное значение Зависит от операционной системы; обычно от 2 до 4 Гб для 32-разрядных операционных систем, и > 4 Гб для 64-разрядных операционных систем.
Процессы механизма обработки очередей (AQ) Максимум на экземпляр 10
Процессы очереди заданий (JQ) Максимум на экземпляр 1000
Подчинённые процессы ввода/вывода Максимум на фоновый процесс (DBWR, LGWR и так далее) 15
Максимум на сеанс резервного копирования 15
Сеансы Максимум на экземпляр 32 Кб; ограничивается инициализационными параметрами PROCESSES и SESSIONS
Процессы сервисов глобального кэша (LMSn) Максимум на экземпляр 10

Остальные ограничения

ПунктТип лимитаЗначение лимита
Число включённых ролей Максимальное значение 148; в это значение входят и все коственно назначенные роли (роль на роль)

Верхние границы размеров программ PL/SQL

Тип кода Pl/SQLВерсия сервераМаксимальный размер дерева DIANA-кода (количество узлов)Оценка максимального размера исходного кода в байтах
Тело пакета или типа данных, отдельная функция или процедура 8.1.5 и выше 226 (67 108 864); примерно 6 000 000 строк кода 256 Мб.
Сигнатура (заголовок) отдельной функции или процедуры 8.0.x и выше 215 128 Кб.
Спецификация пакета или типа данных, анонимный блок 8.1.7 и выше 215 (от 213 до 214 на практике) 128 Кб. (от 32 Кб. до 64 Кб. на практике)

Ограничения PL/SQL

ПунктЛимит
Число связываемых переменных, передающихся с программным модулем 32768
Обработчиков исключений в программном модуле 65536
Полей в записи 65536
Уровней вложенности блоков 255
Уровней вложенности записей 32
Уровней вложенности подзапросов 254
Уровней вложенности меток 98
Уровней вложенности коллекций нет предопределённого ограничения
Величина значения PLS_INTEGER или BINARY_INTEGER -2147483648..2147483647
Число формальных параметров в явном курсоре, функции, или процедуре 65536
Количество объектов на которые ссылается программный модуль 65536
Точность значения FLOAT (бит) 126
Точноcть значения NUMBER (десятичные цифры) 38
Точноcть значения REAL (бит) 63
Размер идентификатора (символы) 30
Размер строкового литерала (байты) 32767
Размер значения CHAR (байты) 32767
Размер значения LONG (байты) 32760
Размер значения LONG RAW (байты) 32760
Размер значения RAW (байты) 32767
Размер значения VARCHAR2 (байты) 32767
Размер значения NCHAR (байты) 32767
Размер значения NVARCHAR2 (байты) 32767
Размер значения BFILE (байты) 4Гб. умноженное на значение параметра DB_BLOCK_SIZE
Размер значения BLOB (байты) 4Гб. умноженное на значение параметра DB_BLOCK_SIZE
Размер значения CLOB (байты) 4Гб. умноженное на значение параметра DB_BLOCK_SIZE
Размер значения NCLOB (байты) 4Гб. умноженное на значение параметра DB_BLOCK_SIZE
Размер триггера 32 Кб.