This is my first post of the new year but it will be a short one. I've been busy with work but I've continued my database experiments. I'm currently working on a full blown database. I'm not using Linq but I'm using a similar idea. Modern databases take the queries you provide them and build execution plans which they execute. I've put together a basic storage engine and I am building a query processor that will build DotNet methods from SQL syntax to be executed against the storage engine. The idea is that once a query is compiled it should have near native performance. As far as the expense of compiling and parsing the SQL I can use the same trick modern databases do. Cache the execution plan (assembly in my case) and use the query as the key. For stored procedures I'll just use the name as the key but I'll implement those later. That is all for tonight but I'll post more once I've gotten further with my experiment.