VistaDB solved database hosting problems.

I've been invited to test a new product, VistaDB. I found it amazing. It's a tiny database engine with huge benefits.

VistaDB engine is only a dll with 32 Kb foot print and it works with almost all development platforms (.NET, COM, Delphi, C/C++). The best thing about VistaDB that it doesn't need any installation on the production environment. Just copy the dll along with your application and everything will work perfectly :).

Let's examine the architecture of VistaDB, it has two modes of configuration (embedded and server).

Embedded configuration:

            In embedded configuration your application (let's say it's an .NET exe) will connect to the database engine (VistaDB.dll 32KB) through VistaDB data provider (VistaDB.Provider.dll 188 KB) and the database itself is saved in vdb file which can expand as long as you have more data to add. This mode is great when you want to deploy your application using copy& paste without installing any software on the server. I used this mode to create an ASP.Net web page on a free hosting server that doesn't provide SQL Server for the free hosting offer.

Server configuration:

            In server configuration, the engine dll is hosted inside a windows service that listens to a TCP port and it gives you better performance and scalability. Beside it gives you the ability to use dedicated database server if you want. But this mode requires you to run a windows service. For more information see VistaDB architecture

SQL support:

VistaDB is a SQL-92 compliant RDBS. Built-in SQL query processor supports full range of data manipulation and data definition commands including parameterized queries, nested SELECTs, SELECT (TOP, WHERE, JOIN, CASE, UNION, LIKE, CONTAINS, GROUP BY, ORDER BY, IF, AS, INSERT, DELETE, UPDATE, ALTER, CREATE, DROP, and more with 50+ V-SQL support functions such as Count(), Avg(), Max(), LastIdentity(), Lower(), Upper(), Left(), Right() etc. for detailed data manipulation.

Engine Features:

VistaDB supports BLOB, Boolean, Character, Currency, Date, DateTime, Double, GUID, Int32, Int64, Memo, Picture and Varchar. VistaDB supports NULL values for all these data types.

It also supports indexes on the tables. See VistaDB features for more information

Bundled tools:

VistaDB comes with 3 main tools

VistaDB Server Manager: This is a monitoring tool for the server. You will not need it if you want to use embedded mode.

VistaDB Data Builder: It's a tool like enterprise manager for SQL Server. You can create database, tables, indexes, etc.

VistaDB Data Migration Wizard: to migrate from other databases to VistaDB.

My experience with VistaDB:

First I tried to create a windows .NET application that manipulates the TransactionHistory table of Adventureworks database (it has 113,443 record) I run a query to select all records from this table and it took about 16 seconds to be executed on embedded mode which is not bad for 113,443 records(takes 2-3 seconds from SQL Server 2005 Developer edition).

It gave me 77,264 records when I used where clause in 6 seconds :)

I tried another trial which is more interesting. Somee.com is a hosting site which gives you a free hosting for your ASP.NET application but it doesn't give you MS SQL. However it gives MS Access but for any SQL Server developer, writing queries for Access is not a nice work because it's not computable with SQL Server queries (I hope MS unifies the query syntax between them).

I used VistaDB and I wrote SQL-92 queries without any problem and without any installation or special requirements on the server. You can see my testing page here. I also compared between VistaDB and Access and Access was faster but Vista has the advantage of SQL-92 compliance and it would be the only database solution for the hosting sites that don't offer database solutions.

For more information please consider visiting VistaDB site

Peace,

Mohamed