Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Название:Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2006
- Город:Санкт-Петербург
- ISBN:5-94157-609-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Хелен Борри - Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ краткое содержание
Рассмотрены вопросы, необходимые разработчику для создания клиент-серверных приложений с использованием СУБД Firebird, явившейся развитием СУБД Borland Interbase 6. Содержится обзор концепций и моделей архитектуры клиент/сервер, а также практические рекомендации по работе с клиентскими библиотеками Firebird. Детально описаны особенности типов данных SQL, язык манипулирования данными (Data Manipulation Language, DML), а также синтаксис и операторы языка определения данных ( Data Definition Language, DDL). Большое внимание уделено описанию транзакций и приведены советы по их использованию при разработке приложений. Описано программирование на стороне клиента и сервера написание триггеров и хранимых процедур, создание и использование событий базы данных, обработка ошибок в коде на сервере и многое другое. Материал сопровождается многочисленными примерами, советами и практическими рекомендациями.
Для разработчиков баз данных
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Интерактивная выборка
Интерактивные временные ряды деятельности по блокировкам генерируются, когда fb_iock_print выполняется с переключателем -i для измерения производительности Менеджера блокировок. Это моделирует UNIX-утилиту sar (System Activity Reporter, построитель отчетов системной деятельности). Отчет, показанный на рис. 40.13, выбирает каждые 4 секунды десять интервалов. Выборка на рис. 40.13 была сгенерирована в Классическом сервере Firebird при выполнении четырех локальных процессов с большим количеством конфликтов:
fb_lock_print -ia 4 10
fb_iock_print -ia "запрашивает" статистику:
1. acquire/s: среднее количество попыток в секунду обращений к таблице блокировок.
2. acqwait/s: среднее количество попыток, которым пришлось ожидать, в каждую секунду.

Рис. 40.13. Интерактивная выборка
3. %acqwait: процент попыток, которые были вынуждены ожидать.
4. acqrtry/s: среднее количество повторных обращений к таблице блокировок в секунду (в теории только для машин SMP).
5. rtrysuc/s: среднее количество успешных повторных попыток в секунду.
! ! !
СОВЕТ. В качестве подсказки, что означают столбцы в различных интерактивных отчетах, прочтите статью "Reading a Lock Print" Ann Harrison на http://www.ibphoenix.com.
. ! .
Установка конфигурации блокировки
Значения по умолчанию Менеджера блокировок должны подойти для большинства вычислительных сред. При работе, особенно в Классическом сервере, имеет смысл подрегулировать эти установки для улучшения производительности или для устранения дефицита ресурсов блокировки.
Файлы конфигурации
Файлы конфигурации размещены в корневом каталоге Firebird. Для сервера Firebird 1.5 и более поздних файл конфигурации называется firebird.conf. Для версии 1.0.x он называется ibconfig в Windows и-isc config в POSIX. Используйте текстовый редактор для открытия и редактирования этого файла.
Версия 1.5 и выше, файл firebird.conf.
Версии, предшествующие Firebird 1.5, файл iscconfig/ibconfig.
Эта установка используется только для машин SMP при выполнении Классического сервера.
В Классическом сервере в любой момент времени к таблице блокировок может иметь доступ только один клиентский процесс. Флаг управляет доступом к таблице блокировок. Клиентские процессы могут обращаться к флагу условно или безусловно. Если запрос условный, то он будет ошибочным и должен быть повторен. Если запрос безусловный, то он будет ожидать, пока не будет удовлетворен. LockAcquirespins устанавливает количество возможных попыток, если запрос к флагу условный.
Требуется целое число. Значение по умолчанию 0 (безусловный). Не существует рекомендованного минимума или максимума.
Версия 1.5 и выше, файл firebird.conf.
Версии, предшествующие Firebird 1.5, файл iscconfig/ibconfig.
Используйте этот параметр для настройки списка хэша блокировок. При повышенной нагрузке производительность может быть улучшена увеличением области памяти под хэш для распределения списка на более короткие цепи хэша. Значением является целое число. Рекомендуется использовать простое число. Значение по умолчанию 101.
Этот параметр и LockMemSize (см. следующий раздел) должны вычисляться одновременно с использованием инструмента Lock Print. Если цепи хэш блокировок более чем в среднем 20, значит объем памяти под хэш слишком мал. Если вам надо увеличить память под хэш, вам нужно увеличить размер таблицы блокировок на тот же процент.
Версия 1.5 и выше, файл firebird.conf.
Версии, предшествующие Firebird 1.5, файл isc_config/ibconfig.
Этот целочисленный параметр представляет количество байтов для совместно используемой памяти для таблицы Менеджера блокировок. Для Классического сервера LockMemSize задает начальное распределение, которое будет динамически увеличиваться, пока не будет исчерпана память. ("Lock manager is out of room", "Исчерпана память для Менеджера блокировок" не означает, что можно отправляться пить кофе!) Значение этого параметра связано с размером кэша базы данных, поскольку каждая страница потребует отдельной блокировки в таблице. Если количество страниц базы данных в кэше установлено в большое значение, это может привести к проблемам памяти для таблицы блокировок.
В Суперсервере объем памяти, выделенный для Менеджера блокировок, не увеличивается.
Размером по умолчанию в Linux и в Solaris является 98 304 байта (96 Кбайт). В Windows это 262 144 (256 Кбайт).
Версия 1.5 и выше, файл firebird.conf.
Версии, предшествующие Firebird 1.5, файл isc config/ibconfig.
Когда соединению требуется блокировка некоторого объекта, оно получает группу запроса блокировки, которая определяет объект и требуемый уровень блокировки. Группы запросов соединяются с группами блокировок в виде удовлетворенных запросов или в виде запросов, ожидающих разрешения.
Параметр LockGrantOrder является Логическим. Значение по умолчанию (1 = True) указывает, что блокировки должны предоставляться по принципу "первым пришел - первым обслужен".
Установка False (0) эмулирует поведение InterBase 3.3, когда блокировка предоставляется, как только она станет возможной. Результатом этого может оказаться то, что запросы будут "замороженными". Рассматривайте это как запрещенную установку и не пытайтесь ее использовать, если только это не требуется для тестирования некоторой модификации сервера базы данных.
Версия 1.5 и выше, файл firebird.conf.
Версии, предшествующие 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 |
Интервал:
Закладка: