| DotNetFirebird Using Firebird SQL in .NET. |
|
Home
Features
Download
Documentation
FAQ
Tools and Code
About
Blog
|
Wednesday, February 09, 2005
Embedded Firebird and Microsoft SQL Server 2005 Express Feature ComparisonThis is a basic comparison of embedded Firebird 1.5 and Microsoft SQL Server 2005 Express. Remember that it compares the embedded version of Firebird which doesn't run as a separate service but is fully embedded in the application. I plan to come with a server-server comparison in some of the future posts.
* Embedding. SQL Server Express can be installed with the host application but it still is a separate server. Firebird can be installed as a server or can be used as as a part of the application (just a single DLL copied into the application directory that doesn't expose any TCP/IP or other interface to other applications). ** Multiple processors support. Full multiprocessor support will come in Firebird 3.0 which is expected to be released in a few months. *** Database file size limitation. Firebird is limited only by file system (e.g. 16+ TB on NTFS). To summarize: Embedded Firebird is a clear win when you need a fully embedded database that users are not aware of. The clear advantages of Embedded Firebird are:
Related Comments:
Ciao. Some considerations:
I'm following Firebird from the first release (just after Interbase was released from Borland as Open Source). I made a lot of tests and I realized that the real problem of Firebird is the "acceptance" of this DBMS as a good choice fo company. I think in the past Firebird can be used above all from Delphi developers. Now .NET data provider extend this DBMS to all developers. So your article on CodeProject is very important. In my company we have a lot of DBs. Some of this DBs are in Access other in MSSQL and I think It's a common situation. In my opinion Firebird has less Publicity than all other DMBS (MySQL, MSSQL) so a lot of developers don't know It's great features. It's very important to publish technical articles on "Microsoft Oriented" site.
I agreed with luca, there NOT quite many people uses FB, at least in China, few developers know it, until I post some introduction and tech articles on it, it now becames to be popular among China .net developers.
And, for open source RMDBS, FB does NOT have some great feature that PostgreSQL has, such "Object-oriented" SQL.
Full multiprocessor support will come in Firebird 3.0 which is expected to be released in a few months.I think you're great optimist ;)
Did you mean Firebird 2.0?
For casual programmers like me, IDE support is helpful. Your site mentions integration with VS.NET. How do I go about doing that? A guide on VS.NET integration will be appreciated - thanks for the good work!!
Oleg: Vulcan 3.0 is commissioned by SAS. I guess they will make sure it won't take too long time ;-)
Firebird doesn't support windows domain integration so you are required to send user and password information over the line. SQL supports both modes.
It’s impossible to improve transaction log performance by putting it on a separate disk from the data using firebird.
Clustered indexes are not needed in Firebird, since it uses completely different scheme when it accesses records.
Clustered index is used to guarantee that pages will be selected in the order specified by the index key which saves disk head from jumping back and forth. Firebird, however, first computes a sparse bitmap setting 1 to the page which has to be loaded. After that is goes through that bitmap and loads pages in the order stored on disk. So, at the end we get the same effect, but, on my taste, in much more elegant way.
And with transaction log you're wrong - Firebird does not have transaction log. The way it handles data is called "carefull write" and does not require transaction log at the same time guaranteeing that disk image is always consistent.
In order to win a lot in terms of performance, you have to configure Firebird to use another disk for sorting purposes (see firebird.conf).
Sorry, i have to say this: The comparison table is really misleading. MSSQL's implementation of the SQL language is by magnitudes richer than Firebird's. Ignoring this fact will not help Firebird. Firebird has a small footprint, that's an advantage in some cases. And it's multi-platform. Thats all.
We are in a unique situation in that we have a large commercial application that supports FireBird embedded, FireBird server and Microsoft SQL server including SQL Express.
Under real world conditions there is no comparison, SQL Express blows away embedded FireBird by an order of thousands to one in performance with large dataset retrieval. FireBird server is approximately half the speed of SQL Express under identical database conditions on the same server, however it is also many thousands of times faster than embedded. This is not to say embedded has no place, we use it as the "default" database when people download and trial our app, but for any but the most trivial uses they will almost without exception upsize to either sql express or firebird server.
Firebird's future?
- Release 2.0 is coming with many improvements. - When you look at the open source databases Firebird has the best .NET Framework support in my opinion.
Wouldn't a comparison with Sql Server 2005 Compact edition be more like an ideal death match ?
http://www.microsoft.com/sql/editions/compact/default.mspx
I've done some testing between SQL 2005 CE and Firebird 2.0 Embedded and Firebird appears to be between 5 and 7 times faster.
Blog comments are closed.
Previous
Archives
Copyright © 2005 - 2007 DotNetFirebird |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||