Setelah dua setengah tahun pengembangan, Firebird 5.0, sebuah DBMS relasional, telah dirilis. Firebird terus mengembangkan kode DBMS InterBase 6.0, yang dirilis sebagai open source pada tahun 2000 oleh Borland. Firebird didistribusikan di bawah lisensi MPL gratis dan mendukung standar ANSI SQL, termasuk fitur-fitur seperti trigger, stored procedure, dan replikasi. Versi biner tersedia untuk Linux, Windows, macOS ΠΈ Android.
Inovasi utama:
- Kemampuan untuk melakukan operasi dalam mode multi-utas telah diterapkan. Paralelisasi menjadi beberapa utas berlaku saat membuat indeks, mengumpulkan sampah (operasi pembersihan otomatis dan manual), membuat cadangan, dan memulihkannya. gfix -sweep -parallel 4 dbname gbak -b -par 4 -nama pengguna -pass password dbname nama cadangan
- Menambahkan dukungan untuk indeks parsial yang hanya menyertakan rekaman terpilih yang memenuhi ketentuan yang ditentukan saat membuat indeks. BUAT INDEKS IT1_COL PADA T1 (COL) DI MANA COL < 100;
- Pernyataan SELECT WITH LOCK, UPDATE, dan DELETE mengimplementasikan sintaksis βSKIP LOCKEDβ, yang memungkinkan Anda mengecualikan record yang memiliki kunci pada saat permintaan dikirim (misalnya, agar tidak menunggu kunci dilepaskan ketika bersinggungan dengan transaksi lain).
- Menambahkan kemampuan untuk memperbarui database ke versi penyimpanan perantara saat ini (ODS - Struktur On-Disk) dengan cepat (pembaruan sebaris) tanpa membuat dan memulihkan dari cadangan. Misalnya, kini Anda dapat mengonversi database dalam format Firebird 4.0 (ODS 13.0) ke format Firebird 5.0 (ODS 13.1) dengan cepat.
- Menerapkan cache pernyataan SQL terkompilasi yang dipelihara secara otomatis (entri basi dihapus sesuai kebutuhan). Ukuran cache diatur melalui parameter MaxStatementCacheSize di firebird.conf.
- Antarmuka telah ditambahkan untuk membuat profil SQL dan PSQL, memungkinkan Anda memperkirakan waktu eksekusi setiap kueri, mengumpulkan statistik jumlah kueri, dan mengidentifikasi masalah kinerja.
- Menambahkan dukungan pada ekspresi MERGE untuk blok kondisional βKETIKA TIDAK COCOK DENGAN SUMBERβ, yang diaktifkan ketika rekaman sumber tidak cocok dengan rekaman mana pun dalam kumpulan target. GABUNG KE pelanggan c MENGGUNAKAN new_customers nc ON (c.id = nc.id) BILA COCOK LALU UPDATE SET name = nc.name BILA TIDAK COCOK DENGAN SUMBER LALU HAPUS
- Sekarang dimungkinkan untuk mengembalikan beberapa baris menggunakan ekspresi RETURNING jika ekspresi DML tertentu mencakup beberapa baris (sebelumnya, kesalahan "beberapa baris dalam pemilihan tunggal" ditampilkan dalam situasi seperti itu).
- Fungsi bawaan baru telah ditambahkan: UNICODE_CHAR untuk mengembalikan karakter unicode yang sesuai dengan kode yang diberikan, dan UNICODE_VAL untuk mengembalikan kode untuk karakter yang diberikan. Parameter QUARTER telah ditambahkan ke fungsi EXTRACT, FIRST_DAY dan LAST_DAY untuk menentukan angka kuartal.
- Paket sistem baru RDB$BLOB_UTIL telah ditambahkan dengan pilihan operasi BLOB untuk modul PSQL.
- Algoritme kompresi rekaman telah ditingkatkan untuk menggunakan penghitung panjang variabel agar lebih efisien mengemas urutan data berulang. Pengoptimalan ini telah secara signifikan meningkatkan rasio kompresi bidang VARCHAR panjang yang tidak terisi lengkap dengan data yang dikodekan UTF-8.
- Menambahkan kemampuan untuk bekerja dengan kursor dua arah (dapat digulir) saat mengakses database dari jarak jauh melalui jaringan.
- Kinerja penyalinan blob telah dioptimalkan.
- Menambahkan dukungan penuh untuk sintaks definisi string yang dijelaskan dalam standar SQL. Misalnya, baris sekarang dapat dipecah berdasarkan komentar atau spasi: pilih 'ab' /* comment */ 'cd' from RDB$DATABASE; pilih 'ab' 'cd' dari RDB$DATABASE;
Sumber: opennet.ru
