We have added a new ability to InMemory.Net called Lazy Loading. It is designed to help reduce memory usage, by only loading those columns, that are actually used by SQL queries. The default behaviour in InMemory.Net is to load the entire database file into memory. However, with the lazy loading feature, the database will load columns, on demand, when they…
Category: Uncategorized
Speeding up Query Compilation with Roslyn
We use Roslyn to help speed up our query compilation process. However because Roslyn requires dot net 4.5 or higher, and our technology currently supports Dot Net 4.0, we have put the Roslyn Compiler interface into a separate DLL ( RosCompiler.dll ) If you are integrating IRDB.DLL into your own solution, and want to be able to use the Roslyn…
Improved Clustered Indexes
Clustered indexes are a feature of InMemory, that help you speed up certain queries, when you filter by a common dimension. Suppose you have a main fact table called SalesTable, and a date dimension called InvoiceDate, you could create a clustered index, by running the following statement in IRDBImport or IRDB-SQL CREATE CLUSTERED INDEX ON SalesTable(InvoiceDate) In our earlier builds,…
Database Timings
We have three ways to see execution related timings 1. IRDB.LOG irdb.log file in the main IRDB directory gives a record of the queries that are executed, and a breakdown of the major times of execution that went into the query. If you stop the service net stop “irdb server” , you should then be able to launch irdbServer.exe in…
Added CSV Support
In our latest build, we have added beta support for importing csv delimited files. You can declare a CSV datasource by using the CSV Keyword in the DATASOURCE command in irdbImport. The following is an example CSV DATASOURCE command. DATASOURCE a1=CSV ‘Data Source=C:\irdb\data\csvtest;Delimiter=,;Has Quotes=True;Skip Rows=0;Has Header=True;Comment Prefix=#;Trim Spaces=False;Ignore Empty Lines=True;encoding=default’ By default the encoding is the system default text encoding. Other supported options…
Intersect / Except Set Operations
Today we’ve added a new build that adds support for INTERSECT and EXCEPT set operations. These take two SELECT statements before and after. The INTERSECT set operation will return the common rows between the two tables, and EXCEPT , will remove any rows contained in Query2 from query1. An example query using INTERSECT would like: SELECT * FROM table1 INTERSECT…
Parameterizing Imports
Our command line import tool, irdbImports, provides a variety of methods for parameterizing your imports. Command Line Parameters First of all the command line parameters are available within the script as special variables, @param1, @param2, @param3 and so on, for each parameter. @param1 will generally be the name of the import script. A script called param.imp with the following contents.…
New Uncolumnized Import Mode
Before in IRDBImport, when you imported data, it would take whatever data was imported, and once the import statement was finished, it would columnize the result. If you imported a second or more tables with the same name, it would then uncolumnize the previous result, and append the new data. This is fine for a few tables, but if you are…
Improved Null Support
We recently overhauled InMemory.Net to add improved support for NULL operations. In general now we have added null support for most expressions. All functions should also accept null parameters, and return null if their parameters are null. You can also use cast with null, e.g. cast ( null as bigint ) to force a null of a specific type. MIN…
For those it may concern: the InMemory.net Feature list.
InMemory.Net Feature List Pure Dot Net In Memory Database Runs on Windows, Mac, Linux Easily Import data through ODBC/OLE DB/ Dot Net Data Drivers, through simple text scripts or via a Dot Net API. E.g. DATASOURCE a1=ODBC ‘dsn=your_DSN’ IMPORT sales=a1.sales SAVE 32 Bit / 64 Bit Odbc Drivers DISTINCT/MIN/MAX/SUM/AVG/COUNT/COUNT DISTINCT Support INNER / LEFT Join Support on multiple fields UNION…