Релиз на СУБД 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;

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster