In most cases, the memory, CPU, and storage required by most mobile devices and embedded systems impose stricter limits that typically make UltraLite the preferred database option.
To compare UltraLite limitations with SQL Anywhere limitations, see SQL Anywhere size and number limitations.
Statistic | Maximum for UltraLite |
---|---|
Number of connections per database |
Up to 14 for single threaded applications. |
Number of concurrent open connections |
Up to 8 for Palm OS and Symbian OS. Up to 32 otherwise. |
Total number of concurrent connections per application |
Up to 16 on Palm OS and Symbian OS. Up to 64 otherwise. |
SQL communication areas |
Up to 31. |
File-based persistent store (database size) |
2 GB file or OS limit on file size. |
Palm Computing Platform database size |
128 MB (primary storage). 2 GB (expansion card file system). |
Rows per table |
Up to 16 million.1 |
Rows per database |
Limited by persistent store. |
Table size |
Limited only by database size. |
Tables per database |
Limited only by database size. |
Columns per table |
Row size is limited by page size, so the practical limit on the number of columns per table is derived from this size. Typically, this is much less than 4000. |
Indexes per table |
Limited only by database size. |
Tables referenced per transaction |
No limit. |
Stored procedure length |
Not applicable. |
Stored procedures per database |
Not applicable. |
Triggers per database |
Not applicable. |
Nesting |
Not applicable. |
Number of publications |
32 publications. |
Page size |
16 KB. |
Row size |
The length of each packed row must not exceed the page size. See Row packing and table definitions . Character strings are stored without padding when they are shorter than the column size. This excludes columns declared as long binary and long varchar as these are stored separately. |
Long binary/long varchar size |
Limited only by database size. |
Prepared statement size |
The size of a prepared statement cannot exceed 64 KB. The size includes the declared size of each new row referenced by the sql query result set as well as table rows at their declared size. |
1In some cases, changes to the row (that is, deletes and updates) and other state information are maintained along with the row data. This allows those changes to be synchronized. Consequently, the actual row limit can be smaller than 16 million, depending on the number of transactions on a table between synchronization?or whether the table is synchronized at all. See How UltraLite manages data and state.