SQL Server vs VistaDB
VistaDB and SQL Server share a Common Language
Both SQL Server and VistaDB use Transact SQL (TSQL) as their primary language. This includes both a set of data types and syntax for manipulating data and for defining a database schema. VistaDB supports a strict subset of TSQL - so your skills and experience with TSQL transfer from SQL Server to VistaDB, and code written against VistaDB will work the same way with SQL Server.
VistaDB also offers TSQL stored procedures, user defined functions (UDF’s), and Views just like SQL Server.
SQL Server Express is a very powerful database since it is essentially a limited edition of SQL Server, but all this power comes at a price in terms of overhead and size. This is often overkill in both features and footprint for building small to midsize desktop database applications.
SQL Server is Big
There are several versions of SQL Server with different installation sizes. The smallest distributions are for SQL Server LocalDB and SQL Server Express which still weigh in at between 90 and 280MB. Once installed they are significantly larger on disk. By comparison, VistaDB typically adds around 100KB to an installation and uses less than 2MB of disk once installed.
The minimum installed footprint for SQL Server 2008 Express is 82.5 MB. If you want the management tools and full text search your size jumps to 546 MB. Compare both of those to the total deployment of VistaDB around 1 MB. You also have to add to the SQL Server install the application of Service Packs (SP1 for 2008 is 262 MB download!).
That size just too big for most desktop or small office database applications. The focus of VistaDB is not to compete with SQL Server Express for full blown server applications. But, we feel VistaDB is an ideal solution when SQL Server Express is being used for an application that can use a serverless environment. Deploying SQL Express for a single user application on a desktop really does not make sense.
Hidden cost for deploying SQL Server Express = Support
There is a cost for deploying SQL Server Express to end users - technical support. A customer told us he was spending 4-10 hours per week on deployment issues to new customers with SQL Express 2008. The issues almost always came down to SQL Server Express conflicts with existing software, or the users machine not being up to date with Windows Update. Once this user switched to VistaDB the total support time spent on setup issues went to zero. Think about the price of your tech support people. One weeks savings in technical support costs more than paid for the entire cost of switching his application to VistaDB.
SQL Server Express is 80-500 times larger install
SQL Server Express 2008 is 82 MB installed for just the data engine, no tools or management abilities. There are over 200 core files that comprise the installed SQL Server Express, compared to only 1 file that make up the VistaDB core engine.
SQL Server Express requires installation and configuration with elevated rights to the local machine, which makes deployment a complicated process. VistaDB is a Zero config deployment using XCopy or FTP with zero configuration, no registry changes, VistaDB can even run as a guest on Windows with UAC enabled. VistaDB can even be FTP’d to shared ASP.NET hosting (shared web server) without any additional configuration.
We hear from users quite frequently that the new installer for SQL Express 2008 is still way too complex for desktop or embedded database needs. As an example SQL Express 2008 requires elevated permissions during install on the desktop, and forced a reboot twice during setup if the installer needs to touch any components. The install process takes over 25 minutes if no patches are required first.
Compare that to a zero config deployment of VistaDB, no elevated permissions or reboots required, you are done in just seconds!
SQL Server Express stays running even when your application is not, tying up resources on the clients desktop machine. VistaDB runs as a serverless database and shuts down when your application exits. One customer told us about a SQL Express install that would consume over 600MB on his clients machines even after his application was no longer running.
SQL Server Express modifications by third parties
In addition, the primary reason for support calls with SQL Express based applications is a third party application accidentally updating or modifying the schema or instance of the SQL Express installation. This cannot happen with VistaDB because your database lives with your application. If your application is not running, you are using zero resources on the client machine. SQL Express is always resident and using memory even if your application is not loaded.
With a 500+MB footprint for equivalent features, distributing SQL Server Express is not a viable option for developers building .NET applications that get distributed over the Internet. Asking your end users to download SQL Server Express introduces an unnecessary obstacle to potential customers looking to evaluate your software or to existing customers looking to get updates. And after downloading, it still needs to be installed and configured as an administrator on the local machine. Too many needless obstacles which causes people to avoid downloading your software. SQL Server Express also features various licensing restrictions which may not be suitable for distributing commercial embedded applications.