Re: Database Alternative

From: Carl Rosenberger (carl_at_db4o.com)
Date: 03/09/04


Date: Tue, 9 Mar 2004 19:16:16 +0100

hel@40th.com wrote:
> http://gt40.40th.com/bench_gt40_arm.html
>
> About 10,000% (literally) faster than anything I've seen posted
> here (from you, specifically), but no, nothing to do with slow-
> as-molasses-in-winter CF. I don't even start measuring until
> 25k items, since anything less is done before you release the
> start button.

Your figures are very nice but how would you use them and with
which programming language?

How would the following queries look like with GT40:

SqlCe
-----
String SQL = "SELECT Molecule.ID, Molecule.Name
  FROM Molecule, Atom
  WHERE Atom.MoleculeID = Molecule.ID
  AND Molecule.Weight <= 18
  AND Atom.Weight = 1"
SqlCeCommand cmd = new SqlCeCommand(SQL, connection);
cmd.CommandType = CommandType.Text;
SqlCeDataReader dtr = cmd.ExecuteReader();

db4o S.O.D.A.
-------------

Query q = objectContainer.query();
q.constrain(typeof(Molecule));
q.descend("weight").constrain(19).smaller().equal();
q.descend("atoms").descend("weight").constrain(1);
ObjectSet objectSet = q.execute();

And how would you bind your result to a DataGrid control?

db4o

----
dataGrid1.DataSource = new ObjectSetCollection(objectContainer, q.execute());
We built our engine with C#, using the subset of  functionality available
for the CompactFramework. Obviously that's not the fastest of choices for
numbercrunching but we got some nice rewards:
- Our engine can run on CompactFramework or along with .NET or Mono in
stand-alone applications or webservers.
- Since we can deliver sets of objects, implementing IList, it's very
convenient to use the databinding functionality available with .NET.
- Performance is "good enough" for the usecases that our customers approach
us with.
- Coding and schema management is very convenient:
You just write your application classes.
- Deployment is simple: You just need our database engine .DLL and
a database file.
- We supply client/server functionality and it's dead simple to
transfer objects. You can connect to a db4o server on your PC and run
a local database on your PocketPC at the same time. Objects can be
moved and copied between open ObjectContainers.
What do your customers use "GT40" for?
I suppose we are targetting different customers.
Kind regards,
Carl
-- 
Carl Rosenberger
db4o - database for objects - http://www.db4o.com