How does Firebird embedded compare to Microsoft SQL Server Express


If you are new to embedded databases, you might run into problem of picking which one to use. One might argue that SqlServer Express is not really an embedded database, but once installed it integrates into Windows in such way that we can still consider it as such. It allows you to access a local database file using shared-memory space without TCP/IP connection or named pipes. At least, if you use Microsoft technology to access it, and not ODBC.

Here are some interesting points:

1. Footprint

Firebird Embedded is 3MB, SqlServer is 50MB download. With Firebird, you can develop native Windows applications using Delphi or C++ which have a very small footprint (1-2MB). For SqlServer it is recommended you use .NET. On Windows 7 this makes almost no difference because .NET comes preinstalled. But on Windows XP which is still installed on many computers, it requires that you update Windows Installer, and download and install .NET runtime, which is 10+ MB more. So, Firebird is a clear winner here.

2. SQL Features

We can call it a draw here as both products are full featured relational DBMS. There are some minor differences in feature set, but overall they are on par.

3. Limitations

Firebird is open source under IDPL license. You can install it on as many computers as you like, run on as many CPU cores as you like and have the database as large as needed (some database size in Terabytes are reported for embedded Firebird). SqlServer Express is limited to 10GB database size and 1GB RAM usage. While 10GB of database size is probably enough for most embedded applications, 1GB of RAM is a limit you might hit quickly. This 1GB of memory is used when sorting dataset in memory (ORDER BY on a complex query for example). Firebird is a clear winner here as well.

4. Portability

With SQL Server you are locked into Microsoft Windows. Firebird runs on just about any modern operating system available today: Windows, Linux, Mac OS X, etc.

4. Use case

An interesting comparison can be made by comparing two similar products that use these databases. Let's take for example Quicken Home Inventory Manager that uses SqlServer Express, and Attic Manager that uses Firebird embedded. Attic Manager has an option to import QHIM data directly from Quicken database, even on Windows 7 64 bit. The import works really well and fast, so we loaded the QHIM database into Attic Manager and tested both products with same database.

Both applications do their job well, and we could even argue that Attic Manager is a little bit snappier and seems to work faster. Let's say that they are similar programs. However, Attic Manager is only 3MB download, while QHIM downloads about 600MB if you let it run on fresh install of WindowsXP. Even if you have a broadband connection, the difference is huge.

The other thing that makes Attic much better program is the fact that it runs on Windows XP, Windows 7 and Linux and in both 32 and 64 bit variants of operating system. This is only because Firebird database is used and there was no need to rewrite the program again for the new version of operating system. Firebird is forward compatible and has been designed to run on 64 bit from the very start.


Do you find this FAQ incorrect or incomplete? Please e-mail us what needs to be changed. To ensure quality, each change is checked by our editors (and often tested on live Firebird databases), before it enters the main FAQ database. If you desire so, the changes will be credited to your name. To learn more, visit our add content page.

If you are a commercial tool maker and your tool features a great way to handle the issue written about in this FAQ, please check out our advertisement page.



All contents are copyright © 2007-2017 FirebirdFAQ.org unless otherwise stated in the text.


Links   Firebird   News   FlameRobin   Home Inventory powered by FB  
Add content   Advertise   About  

Categories
 Newbies
 SQL
 Installation and setup
 Backup and restore
 Performance
 Security
 Connectivity and API
 HOWTOs
 Errors and error codes
 Miscellaneous