ПОСЛЕДНИЕ НОВОСТИ
    Главная | IT | Выпуск СУБД Firebird 5.0

    Выпуск СУБД Firebird 5.0

    После двух с половиной лет разработки представлен релиз реляционной СУБД Firebird 5.0. Firebird продолжает развитие кода СУБД InterBase 6.0, открытого в 2000 году компанией Borland. Firebird распространяется под свободной лицензией MPL и поддерживает стандарты ANSI SQL, в том числе такие возможности, как триггеры, хранимые процедуры и репликацию. Бинарные сборки подготовлены для Linux, Windows, macOS и Android.

    Ключевые новшества:

    • Реализована возможность выполнения операций в многопоточном режиме. Распараллеливание в несколько потоков применимо при создании индексов, сборке мусора (автоматические и ручные операции sweep), создании резервных копий и восстановлении из них.gfix -sweep -parallel 4 dbname
      gbak -b -par 4 -user username -pass password dbname backupname
    • Добавлена поддержка частичных индексов, включающих только выборочные записи, соответствующие указанным при создании индекса условиям.CREATE INDEX IT1_COL ON T1 (COL) WHERE COL < 100;
    • В выражениях SELECT WITH LOCK, UPDATE и DELETE реализован синтаксис “SKIP LOCKED”, позволяющий исключить записи, для которых на момент отправки запроса выставлена блокировка (например, чтобы не ждать освобождения блокировки при пересечении с другой транзакцией).
    • Добавлена возможность обновления БД до актуальной промежуточной версии хранилища (ODS – On-Disk-Structure) на лету (inline update) без создания и восстановления из резервной копии. Например, теперь можно на лету преобразовать БД в формате Firebird 4.0 (ODS 13.0) в формат Firebird 5.0 (ODS 13.1).
    • Реализован кэш скомпилированных SQL-выражений, обслуживаемый автоматически (устаревающие записи очищаются по мере необходимости). Размер кэша задаётся через параметр MaxStatementCacheSize в firebird.conf.
    • Добавлен интерфейс для профилирования SQL и PSQL, позволяющий оценивать время выполнения каждого запроса, накапливать статистику о числе запросов и выявлять проблемы с производительностью.
    • В выражение MERGE добавлена поддержка условного блока “WHEN NOT MATCHED BY SOURCE”, срабатывающего когда исходная запись не соответствует ни одной записи в целевом наборе.MERGE INTO customers c USING new_customers nc ON (c.id = nc.id)
      WHEN MATCHED THEN
      UPDATE SET name = nc.name
      WHEN NOT MATCHED BY SOURCE THEN
      DELETE
    • Обеспечена возможность возвращения нескольких строк выражением RETURNING, если заданное DML-выражение охватывает несколько строк (ранее в подобных ситуациях выводилась ошибка “multiple rows in singleton select”).
    • Добавлены новые встроенные функции: UNICODE_CHAR для возвращения unicode-символа, соответствующего заданному коду, и UNICODE_VAL для возвращения кода для заданного символа. В функции EXTRACT, FIRST_DAY и LAST_DAY добавлен параметр QUARTER для определения номера квартала.
    • Добавлен новый системный пакет RDB$BLOB_UTIL с подборкой операций с BLOB-ами для модулей PSQL.
    • Улучшен алгоритм сжатия записей, который теперь применяет счётчик переменной длины для более эффективной упаковки повторяющихся последовательностей данных. Оптимизация позволила значительно повысить степень сжатия не полностью заполненных длинных полей VARCHAR с данными в кодировке UTF-8.
    • Добавлена возможность работы с двунаправленными курсорами (scrollable) при удалённом сетевом обращении к БД.
    • Проведена оптимизация производительности копирования блобов.
    • Добавлена полная поддержка синтаксиса определения строк, описанного в стандарте SQL. Например, строки теперь могут разрываться комментариями или пробелами:select ‘ab’ /* comment */ ‘cd’ from RDB$DATABASE;
      select ‘ab’ ‘cd’ from RDB$DATABASE;

     

    Источник


    Теги: