Объект | Элемент | Firebird 1.0.x | Firebird 1.5 | Замечания |
Идентификаторы | Почти все объекты | 31 символ | 31 символ | Нельзя использовать символы вне диапазона US ASCII (ASCIIZ) |
Имена ограничений | 27 символов | 27 символов | ||
Даты | Самые ранние и самые поздние даты | января 100 г. | ||
Самая поздняя | 31 декабря 9999 г. Замечание: считается, что сервер может аварийно завершаться, если системная дата на сервере установлена больше, чем 2039[170]. | |||
Сервер | Максимальное количество подключенных клиентов[171] | 024 (TCP/IP) | 024 (TCP/IP) | Теоретическое ограничение меньше для Windows с именованными каналами (NetBEUI) - сервер, скорее всего, зависнет при более чем 930 одновременных соединениях. Практически нормальным будет не более 150 одновременных подключений клиентов Суперсервера при обычных интерактивных приложениях для сервера с низкими спецификациями. Для Классического сервера это количество может быть меньше по причине того, что каждый клиент использует больше ресурсов |
Максимальное количество баз данных, открытых в одной транзакции | Количество баз данных, открытых при запуске транзакции с помощью isc_start_multiple(), ограничивается только доступными системными ресурсами. Транзакция, запущенная с помощью isc start transaction(), ограничивает количество одновременно подключенных баз данных 16 | |||
База данных | Количество таблиц | 32 767 | 32 767 | |
Максимальный размер | 7 Тбайт | 7 Тбайт | Приблизительное теоретическое ограничение. Не известна база данных Firebird с таким количеством записей, чтобы ее размер превышал 7 Тбайт | |
Максимальный размер файла | Зависит от файловой системы. В FAT32 и ext2 2 Гбайт. Более старая NTFS и ext3 обычно дают 4 Гбайт. Многие 64-битовые файловые системы не устанавливают ограничений на размер файла с совместным доступом | |||
Максимальное количество файлов в базе данных | Теоретически 216 (65 536) включая файлы оперативной копии (shadow). Порог будет ниже, если операционная система накладывает ограничения на количество файлов, которое может быть одновременно открыто в одном процессе. Некоторые позволяют увеличить эту границу | |||
Максимальный размер страницы | 16 386 байт | 16 386 байт | Другими размерами являются 1024, 2048, 4096 (по умолчанию) и 8192 байт | |
Максимальное количество буферов кэша | 65 536 страниц | 65 536 страниц | Практическое ограничение зависит от доступного объема RAM. Общий размер (страницы * размер страницы для Суперсервера, страницы * размер страницы * количество одновременных пользователей для Классического сервера) никогда не должен превышать половины доступной памяти RAM. Рассматривайте в качестве практического ограничения 10 000 страниц и увеличивайте или уменьшайте, отходя от этого количества, в соответствии с требованиями производительности | |
Таблицы | Максимальное количество версий для структуры таблицы | 255 | 255 | Firebird сохраняет не более 255 форматов для каждой таблицы. Версия формата увеличивается на 1 каждый раз, когда выполняется изменение метаданных. Когда таблица достигает ограничения, вся база данных становится недоступной - нужно сделать ее резервную копию и выполнить восстановление |
Максимальный размер строки | 64 Кбайт | 64 Кбайт | Подсчитывается в байтах. Столбцы массивов и BLOB каждый занимает 8 байт для хранения идентификатора; VARCHAR - длина в байтах + 2; CHAR - длина в байтах; SMALLINT - 2; INTEGER, FLOAT, DATE и TIME - 4; BIDINT, DOUBLE PRECISION и TIMESTAMP - 8; NUMERIC и DECIMAL - 4 или 8 в зависимости от точности. Системные таблицы имеют ограничение на размер страницы 128 Кбайт | |
Максимальное количество строк[172] | 2(^32^) строки | 2(^32^) строки | Больше или меньше. Строки под- считываются с помощью 32-битового беззнакового целого для таблиц и 32-битового для индекса. Таблица с длинной строкой - имеющая много полей или с очень длинными полями - может хранить меньше строк, чем таблица с очень короткими строками. Все строки - включая удаленные - попадают в это число; поля BLOB, хранимые на страницах данных таблицы, также входят в это число | |
Максимальное количество столбцов | Зависит от используемых типов данных (см. Максимальный размер строки) | |||
Максимальное количество индексов на таблицу | 64 | 256 | ||
Максимальный размер внешнего файла | 4 Гбайт в Windows NTSF, 2 Гбайт в Windows FAT32, Linux ext2, ext3 и Solaris | |||
Индексы | Максимальный размер[173] | 252 байт | 252 байт | Этот теоретический максимум применяется к индексу из одного столбца, где набор символов является однобайтовым и использует порядок сортировки по умолчанию (двоичный). Подсчитываются байты, а не символы. Практический максимум уменьшается для составных индексов, многобайтовых наборов символов и сложных порядков сортировки. Например, индекс для одного столбца, использующего 3-байтовые символы UNICODE_FSS, может иметь максимум (253/3) = 84 символа. Некоторые последовательности сортировки для ISO8859 используют до 4 байт на символ только для атрибутов сортировки |
Максимальное количество сегментов | 16 | 16 | ||
Запросы | Максимальное количество соединяемых таблиц | 256 | 256 | Теоретическое ограничение |
Максимальное количество вложенных подзапросов | Теоретически предела нет, но большая вложенность подзапросов ухудшает производительность. Производительность и потребление ресурсов определяется практическими лимитами, конкретно для каждого запроса | |||
Максимальный размер столбца, составляющего поля ORDER BY | 32 Кбайт | 32 Кбайт | ||
Модули PSQL | Максимальный размер BLR | 48 Кбайт | 48 Кбайт | Текст хранимых процедур и триггеров компилируется в байт-код (BLR), который более компактен, чем исходный текст. Если вы все- таки обнаружили ограничение, попробуйте разбить вашу монументальную процедуру на несколько частей, вызываемых из главной процедуры |
Максимальное количество событий в процедуре или триггере | Нет ограничения | Нет ограничения | Практический лимит совпадает с ограничением на размер BLR | |
Количество рекурсивных вызовов | 750 на Windows, 1000 на платформах POSIX | |||
BLOB | Максимальный размер BLOB | Максимум зависит от размера страницы. Для страницы 2 Кбайт максимальный размер - 512 Мбайт. Для 4 Кбайт - 4 Гбайт. Для страниц размера 4 и 8 Кбайт - 32 и 256 Гбайт соответственно | ||
Максимальный размер сегмента | BLOB хранятся посегментно, теоретический максимальный размер которого не более 64 Кбайт. В DSQL нет возможности указать размер сегмента, поскольку его устанавливает клиентская программа или библиотека-компонент, как правило, игнорируя размер сегмента, указанный в определении BLOB |