Издаване на СУБД Firebird 5.0

След две години и половина разработка, е представена версия 5.0 на релационната СУБД Firebird. 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) при отдалечен достъп до базата данни.
  • Извършена е оптимизация на производителността при копиране на BLOB обекти.
  • Добавена е пълна поддръжка на синтаксиса за дефиниране на низове, описан в SQL стандарта. Например, низовете вече могат да бъдат прекъсвани от коментари или интервали: select 'ab' /* comment */ 'cd' from RDB$DATABASE; select 'ab' 'cd' from RDB$DATABASE;

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

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