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
|
|
Pagesize
|
Limit (bytes)
|
|
1 Kb
|
32
|
|
2 Kb
|
64
|
|
3 Kb
|
96
|
|
4 Kb - 8 Kb
|
128
|
*SQL Server limits to 128 bytes, we have imposed this limit to ensure compatibility
|
|
# of Columns in a Table
|
(depends on pagesize)
|
|
# of Columns in an Index
|
(depends on pagesize)
|
|
# of 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
|
|
Pagesize
|
Limit (bytes)
|
|
1 Kb
|
250
|
|
2 Kb
|
500
|
|
3 Kb
|
750
|
|
4 Kb
|
1,000
|
|
5 Kb
|
1,250
|
|
6 Kb
|
1,500
|
|
7 Kb
|
1,750
|
|
8 Kb
|
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)
|
|
Pagesize
|
Limit
|
|
1 Kb
|
128 Mb
|
|
2 Kb
|
512 Mb
|
|
3 Kb
|
768 Mb
|
|
4 Kb
|
1 Gb
|
|
5 Kb
|
1.2 Gb
|
|
6 Kb
|
1.5 Gb
|
|
7 Kb
|
1.7 Gb
|
|
8 Kb
|
2 Gb
|
|
|
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.