VistaDB 6
VistaDB / How does VistaDB work? / Physical Database File Storage / Database limits based upon pagesize / Database rowsize limits
Database rowsize limits

Pagesize Limitations on rowsize and fixed data

The maximum number of columns, key columns in an index, total columns in an index, and fixed data in a single row are impacted by the pagesize of the database.

Fixed row data refers to the amount of data that has to be stored in the row. Some data types like varchar will store the minimum amount possible. But others like char(8000) would always consume 8000 bytes in the row.

Extended Row Data

Some data types are not stored in the row ever, these are called large object data types and are stored in separate extents in the database file. Image, Text, NText are always stored in these extra data pages and only 8 bytes is every deducted from the in row (basically pointers to where the actual data is stored, and how long it is).

See the MSDN article on LOB types for information about how SQL Server stores this data. We are similar, but not exactly the same.

Overflow Data

Some data types may be partially stored in the row and overflow to extended data pages. These are the var types (varbinary, varchar, nvarchar). VistaDB will attempt to store them as in row data first, but when they overflow the row they are stored in their own extent within the database.

Limits

1 Kb pagesize

Max Columns: 16
Max Index Key Columns: 1
Total Index Columns: 8
Fixed row data: 956 bytes

2 Kb pagesize

Max Columns: 32
Max Index Key Columns: 1
Total Index Columns: 16
Fixed row data: 1,688 bytes

4 Kb pagesize

Max Columns: 128
Max Index Key Columns: 2
Total Index Columns: 64
Fixed row data: 3,152 bytes

8 Kb pagesize

Max Columns: 1024
Max Index Key Columns: 6
Total Index Columns: 1024
Fixed row data: 7,872 bytes

16 Kb pagesize

Max Columns: 2048
Max Index Key Columns: 6
Total Index Columns: 1024
Fixed row data: 15,744 bytes

 

See Also