Этот целочисленный параметр представляет количество байтов для совместно используемой памяти для таблицы Менеджера блокировок. Для Классического сервера LockMemSize задает начальное распределение, которое будет динамически увеличиваться, пока не будет исчерпана память. ("Lock manager is out of room", "Исчерпана память для Менеджера блокировок" не означает, что можно отправляться пить кофе!) Значение этого параметра связано с размером кэша базы данных, поскольку каждая страница потребует отдельной блокировки в таблице. Если количество страниц базы данных в кэше установлено в большое значение, это может привести к проблемам памяти для таблицы блокировок.
В Суперсервере объем памяти, выделенный для Менеджера блокировок, не увеличивается.
Размером по умолчанию в Linux и в Solaris является 98 304 байта (96 Кбайт). В Windows это 262 144 (256 Кбайт).
LockGrantOrder
Версия 1.5 и выше, файл firebird.conf.
lock_grant_ order
Версии, предшествующие Firebird 1.5, файл isc config/ibconfig.
Когда соединению требуется блокировка некоторого объекта, оно получает группу запроса блокировки, которая определяет объект и требуемый уровень блокировки. Группы запросов соединяются с группами блокировок в виде удовлетворенных запросов или в виде запросов, ожидающих разрешения.
Параметр LockGrantOrder является Логическим. Значение по умолчанию (1 = True) указывает, что блокировки должны предоставляться по принципу "первым пришел - первым обслужен".
Установка False (0) эмулирует поведение InterBase 3.3, когда блокировка предоставляется, как только она станет возможной. Результатом этого может оказаться то, что запросы будут "замороженными". Рассматривайте это как запрещенную установку и не пытайтесь ее использовать, если только это не требуется для тестирования некоторой модификации сервера базы данных.
LockSemCount
Версия 1.5 и выше, файл firebird.conf.
any_lock_sem_count
Версии, предшествующие Firebird 1.5, файл isc_config/ibconfig.
Это целочисленный параметр, задающий количество доступных семафоров для межпроцессной коммуникации (Inter-Process Communication, IPC) Классического сервера. Значение по умолчанию 32. Устанавливайте этот параметр для Классического сервера для увеличения или уменьшения количества доступных семафоров.
Приложение 1. Список внешних функций
FBUDF
|
INULLIF(VALUE1, VALUE2)
|
Linux, Win32
|
Возвращает NULL для подвыражения, если оно преобразуется в непустое значение; иначе возвращает значение подвыражения. Применимо только для числовых типов с фиксированной точкой и только в Firebird 1.0.x. В Firebird 1.5 и выше используйте внутреннюю функцию NULLIF()
|
Аргументы
|
VALUE1: столбец или вычисляемое выражение
VALUE2: константа или выражение, с которым сравнивается VALUE1. ЕСЛИ они равны, функция вернет HULL
|
Возвращаемое значение
|
NULL, если VALUE1 и VALUE равны; если равенства нет, будет возвращено VALUE 1
|
Замечания
|
INULLIFO имеет результат, эквивалентный использованию внутренней SQL-функции NULLIFO, реализованной в Firebird 1.5 и выше для числовых типов с фиксированной точкой
Внешняя функция INULLIFO существует в трех реализациях: две для 32-битовых и 16-битовых типов (inullif и dnullif), а третья для 64- битовых типов (i64nullif). Если вы хотите использовать ее с любыми числовыми типами с фиксированной точкой, объявите все реализации. Объявления можно найти в скрипте fbudf.sql в каталоге /UDF вашей инсталляции Firebird.
Не объявляйте реализацию i64nullif для баз данных, которые не поддерживают 64-битовые числа- например, для не перенесенной базы данных InterBase 5
|
Пример
|
Следующий оператор приведет к тому, что значение STOCK в таблице PRODUCTS будет установлено в NULL для всех строк, где оно имеет значение 0:
UPDATE PRODUCTS
SET STOCK = iNULLIF(STOCK, 0)
|
Связанные или похожие функции
|
См. также NULLIF() , sNullIf()
|
FBUDF
|
INVL(VALUE1, VALUE2)
|
Linux, Win32
|
Эта функция пытается повторить функцию Oracle NVL() только для числовых типов с фиксированной точкой. Она возвращает указанное непустое значение, если заданный столбец имеет значение NULL
|
Аргументы
|
VALUE1: столбец или выражение, включающее столбец. Типы с плавающей точкой не поддерживаются. При необходимости используйте в вашем выражении CAST() для преобразования значения в числовой тип.
VALUE2: выражение или константа, которая будет возвращаемым значением, если VALUE1 дает NULL
|
Читать дальше