VistaDB Features and Specifications

The pagesize of a database will change many of the limits on the data. Some of these values are lower than VistaDB 3.x to ensure compatibility with SQL Server.

Maximum Details
Max SQL Identifier Length: Column Name, Table Name, Stored Proc Name, Trigger Name, CLR Assembly Name

Page Size | Limit (bytes)
1Kb | 32
2Kb | 64
3Kb | 96
4Kb–8Kb | 128

* SQL Server limits to 128 bytes, we have imposed this limit to ensure compatibility

# Columns in a Table Depends on pagesize
# Columns in an index Depends on pagesize
# Indexes in a Table

Primary Key indexes per table: 1
Secondary indexes: (depends on pagesize)

Increasing the number of secondary indexes may affect insert and update performance since the engine must update all indexes when row changes are applied.

# of Rows in a Table

2 Billion

Not limited by engine, actually limited to machine resources for loading the trees.

# of Rows in a Transaction

Limited only by available memory constraints of the operating system or hardware. Transactions use multi-versioning record schema. New record versions are allocated for each transaction.

Transactions degrade performance by as much as 30% compared to direct database calls.

# of Tables in a Database

32,767

In reality, the limit is based on available memory constraints of the operating system or hardware.

Size of Database File

No hard limit in database file format. Each row, index, database object requires a tree entry. These tree entries each require a certain amount of resources when loaded into RAM.

Theoretical limit is 16 Exabytes (uint64). Practical limit is based upon machine resources. Files are not limited by the database engine, but loading very large databases will require large system resources.

Max Expression Length

Check Constraint

Foreign Key Expression

Default Value Expression

Page Size | Limit (Bytes)

1Kb | 250
2Kb | 500
3Kb | 750
4Kb | 1,000
5Kb | 1,250
6Kb | 1,500
7Kb | 1,750
8Kb | 2,000

Size of CLR Assembly Limits based upon data stored as a binary
Size of View Expression Same pagesize limits as NTEXT column

Extended Data Columns Limits

TEXT

NTEXT

IMAGE

BINARY(MAX)

Page Size | Limit

1Kb | 128Mb
2Kb | 512Mb
3Kb | 768Mb
4Kb | 1Gb
5Kb | 1.2Gb
6Kb | 1.5Gb
7Kb | 1.7Gb
8Kb | 2Gb

 

Transaction Isolation Level ReadCommitted isolation (pessimistic)
Database File Page Size 1 Kb - 16 Kb depending upon license (see pagesize limits)

Self Imposed Limits

VistaDB was designed using 32-bit and 64-bit memory addressing in most situations that required large upper limits. The effect of supporting large upper limits are ranges that exceed 4 billion or 4GB for 32-bit values and provides massive Exabytes limits for 64-bit values.

Because of our focus on supporting the creation of small to mid size applications, supporting such enormous upper limits is not feasible for testing. Therefore we have implemented some self-imposed limits when it seemed appropriate.

Nunit Tests Included

We include hundreds of NUnit tests with the database engine to demonstrate our commitment to quality. You may run these NUnit tests locally as well to validate your installation. The unit tests themselves are also an excellent source of code snippets and samples.