понедельник, 18 августа 2008 г.

Firebird 2.1 - Краткий обзор новых возможностей

Для тех, кто планирует переход на Firebird 2.1 с более старых версий FB я собрал краткий обзор тех изменений, которые характерны для данного релиза. Итак:

Таблицы мониторинга Firebird 2.1

Позволяют получить данные об активности сервера, информацию о выполняющихся запросах, активных подключениях, а так же собрать статистику базы Firebird. Так же в данном релизе реализована возможность отменять зависшие запросы.

Глобальные временные таблицы

  • Временные таблицы позволяют хранить промежуточные данных. Время жизни – транзакция или подключение.
  • Общие метаданные и раздельные данные.
  • Поддерживаются индексы, триггеры, уникальность и ссылочная целостность.
  • Данные хранятся во временных файлах - Мгновенная очистка.
  • Нет проблем сборки мусора.

Аутентификация Firebird средствами Windows

В Firebird 2.1 реализована возможность SSPI аутентификации средствами Windows. Администраторы домена на уровне БД определяются как суперпользователи SYSDBA.

Общие табличные выражения. CTE (Common Table Expressions)

Позволяют создавать именованные результирующие множества на основе SQL запросов и использовать их впоследствии для дальнейших операций. При помощи CTE (табличных выражений) легко реализовать рекурсивные запросы.

Повышение производительности

  • Группировка пакетов для передачи по сети.
  • Кэширование информации о запросе.
  • Улучшения сетевого протокола.
  • Оптимизация алгоритма сброса страниц на диск для кеша большого размера.
  • Большие сортировки на диске.
  • Повышена скорость чтения\записи внешних таблиц.
  • Прочее.

Триггеры уровня базы данных

Поддерживаются следующие виды триггеров:
  • CONNECT
  • DISCONNECT
  • TRANSACTION START
  • TRANSACTION COMMIT
  • TRANSACTION ROLLBACK
Для отключения триггеров БД в Firebird 2.1 можно воспользоваться утилитой командной строки:
isql temp.fdb -user SYSDBA -pass masterkey -nodbtriggers
Database: temp.fdb, User: SYSDBA 
SQL> ALTER TRIGGER TRG_CONN INACTIVE; 
SQL> EXIT;

Домены в процедурах и триггерах

Домены в параметрах хранимых процедур:
CREATE PROCEDURE MY_PROC(IN_PARAM [TYPE OF] DOMAIN_A) RETURNS (OUT_PARAM [TYPE OF] DOMAIN_B)
Декларативные переменные в хранимых процедурах и триггерах:
DECLARE VARIABLE VAR1 [TYPE OF] DOMAIN_A
Приведение типов к заданному домену:
OUT_PARAM = CAST(VAR1 AS [TYPE OF] DOMAIN_B)

Изменения в SQL

  • MERGE - объединение диапазонов данных по заданным условиям.
  • INSERT OR UPDATE - общая инстукция для вставки и обновления.
  • Возврат значений через RETURNING для UPDATE, DELETE, INSERT OR UPDATE.
Добавлено множество новых встроенных функций. В следующих сообщениях этого блога все эти вопросы будут рассмотрены более подробно.

Комментариев нет: