InMemory.Net

active

by InMemory.Net (Cork, Ireland) · since 2014 · also known as IRDB, InMemory.Net IRDB

Commercial in-memory columnar SQL engine for .NET that speeds up reporting over hundreds of millions of rows.

columnar / olaprelationaldatabase engineproprietarymature

Overview

InMemory.Net is a small commercial analytics database from Cork, Ireland, written in .NET. Its IRDBImport tool pulls data out of ODBC, OLE DB or .NET data providers, dictionary-compresses each column (typically 5-10x) into files on disk, and the IRDB server loads those files into RAM and answers SQL aggregations, with queries compiled to .NET code via Roslyn. It is essentially an extract-and-accelerate layer for reports and dashboards rather than a system of record: data is refreshed by re-importing, not by OLTP writes. Development is slow but alive; builds target .NET Framework 4.x and modern .NET, and Parquet import and export arrived in 2025.

Strengths & trade-offs

Strengths

  • +Aggregates hundreds of millions of rows in about a second on one server
  • +Dictionary-encoded columns shrink data 5-10x so large extracts fit in RAM
  • +Imports from any ODBC, OLE DB or .NET source and from Parquet files
  • +Native .NET API and LINQ for embedding fast analytics in .NET apps
  • +Simple perpetual pricing compared with enterprise analytics engines

Trade-offs

  • −Batch re-import model; not designed for transactional writes
  • −Windows/.NET only, single-node, small vendor with sparse documentation
  • −Little community, tooling or third-party integration compared with DuckDB or ClickHouse

Great for

  • +Accelerating slow SQL Server or ODBC-backed reports
  • +Embedded analytics inside .NET line-of-business applications
  • +Interactive dashboards over tens of millions of rows on a desktop

Think twice for

  • −OLTP or frequently updated data
  • −Linux or container-first deployments
  • −Multi-terabyte datasets that exceed one machine's memory

Capabilities

Native or official first-party support · 5 of 25 tracked

✓Joins
✓Columnar storage
✓In-memory
✓Durable persistence
✓Compression
–Transactions
–Secondary indexes
–Full-text search
–Vector search
–Geospatial
–JSON
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Encryption at rest
–Role-based access
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Small · ≤ 100 GB
Horizontal scaling
None
Multi-region
No
Transactions
None
Consistency
Strong
Schema
Strict
Architecture
In memory, Client server, Single node
Query languages
SQL, LINQ

Single server; capacity bounded by RAM after column compression.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsADO.NET data provider, ODBC
client languagesC#

Alternatives to InMemory.Net

Compare all→
DuckDBColumnar / OLAP63.7

In-process columnar SQL database: the SQLite of analytics, running inside your app or notebook.

inmemory-net vs duckdb →
ClickHouseColumnar / OLAP69.8

Open-source columnar OLAP database known for very fast aggregations over billions of rows.

inmemory-net vs clickhouse →
Microsoft SQL ServerRelational71.0

Microsoft's flagship RDBMS: T-SQL, columnstore, Always On, and now native vectors and JSON.

inmemory-net vs sql-server →
SingleStoreRelational29.0

Distributed SQL mixing in-memory rowstore and columnstore for real-time analytics, search and vectors.

inmemory-net vs singlestore →
ExasolColumnar / OLAP31.0

In-memory MPP columnar analytics database from Germany, tuned for fast BI with little tuning.

inmemory-net vs exasol →
Apache KuduColumnar / OLAP18.6

Columnar storage engine for fast analytics on fast-changing data, paired with Impala or Spark.

inmemory-net vs apache-kudu →

InMemory.Net FAQ

What is InMemory.Net?

InMemory.Net is a columnar / OLAP database by InMemory.Net (Cork, Ireland), first released in 2014. InMemory.Net is a small commercial analytics database from Cork, Ireland, written in .NET. Its IRDBImport tool pulls data out of ODBC, OLE DB or .NET data providers, dictionary-compresses each column (typically 5-10x) into files on disk, and the IRDB server loads those files into RAM and answers SQL aggregations, with queries compiled to .NET code via Roslyn. It is essentially an extract-and-accelerate layer for reports and dashboards rather than a system of record: data is refreshed by re-importing, not by OLTP writes. Development is slow but alive; builds target .NET Framework 4.x and modern .NET, and Parquet import and export arrived in 2025.

Is InMemory.Net open source?

No. InMemory.Net is proprietary, closed-source software.

Does InMemory.Net support ACID transactions?

No. InMemory.Net does not provide ACID transactions; its consistency model is strong.

Does InMemory.Net scale horizontally?

InMemory.Net does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at small scale (≤ 100 GB).

How can I run InMemory.Net?

You can self-host it.

What is InMemory.Net best for?

InMemory.Net is a strong fit for accelerating slow SQL Server or ODBC-backed reports, embedded analytics inside .NET line-of-business applications and interactive dashboards over tens of millions of rows on a desktop. Think twice for OLTP or frequently updated data.

What are the best alternatives to InMemory.Net?

Common alternatives to InMemory.Net include DuckDB, ClickHouse, Microsoft SQL Server, SingleStore and Exasol. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is InMemory.Net?

InMemory.Net ranks #668 of 844 databases on the WhichDB Score (0.2/100), and #55 among columnar / OLAP databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.