The message is everywhere -- need an in-proc relational database for your “occasionally connected” mobile or desktop application, capable of query processing, transactions, persistence, and much more?  Then consider using SQL Everywhere Edition of Microsoft SQL Server technology, available as a free download.

 

Microsoft states that SQL Everywhere has a “compact footprint”, but how big exactly is it?

 

The hard disk space taken by “Microsoft SQL Server Everywhere” folder is 1,826,816 bytes.  That’s including the 20,480 bytes for README.htm, and 118,784 bytes for EULA_EN.rtf.  The runtime dlls take up 1,687,552 bytes on the hard disk.

 

Below are some private bytes measurements (averaged across 3 runs):

 

  1. Windows app with one form and two buttons.  SqlServerCe.dll  is not referenced.

a).  Form1 loaded:  21,655,552

b). sqlServerCe.dll loaded via Assembly.LoadFile:  23,068,672 (1,413,120 bytes increase ≈ 6%)

  1. Windows app with one form and two buttons.  SqlServerCe.dll  is referenced.

=> Form1 loaded:  23,248,896 (1,593,344 byte increase ≈ 7%, compared to 1-a)

  1. Windows app with one form and 5 buttons.  SqlServerCe.dll  is not referenced.

=> Form1 loaded:  21,667,840 (12,288 byte increase  ≈ 0.056743%, compared to 1-a)

  1. Added another blank form (Form2) to the project. 

=> Form1 loaded (form 2 is not loaded):  21,999,616 (344,064 byte increase  ≈ 1.6%, compared to 1-a)

  1. Test case #2, plus create an instance of SqlCeRemoteDataAccess and SqlCeEngine classes, and execute CreateDatabase method (no dispose called)

=> 2,654,208 bytes ≈ 12%

  1. Test case #2, plus create an instance of SqlCeRemoteDataAccess and SqlCeEngine classes

=> 2,535,424 bytes ≈ 11.7%

  1. Test case #2, plus open and close local database connection using SqlCeConnection

=> 2,879,488 bytes ≈ 13%

 

Given, these tests are far from comprehensive… but it gives a rough idea on the hard disk and memory consumption by the SQL Everywhere classes.

 

For more information on  SQL Everywhere, visit the following sites: