The following table illustrates hard limits that apply to UltraLite and UltraLite Java edition databases. In many cases, the limits are beyond the maximum capabilities of mobile devices. Performance considerations and device capabilities impose stricter limitations.
Item | UltraLite database limitations | UltraLite Java edition database limitations |
---|---|---|
Database and file size | 1 file per database. The file size is limited by the operating system and file system. | 1 file per database. The file size is limited by the operating system and file system. |
Temporary file size | Limited by the operating system. | Limited by the operating system. |
Cache size | Limited by the available memory on the device. | Limited by the available memory on the device. |
Dynamic cache sizing |
UltraLite allows you to set an initial, minimum, and/or maximum cache size for a database. The size of the cache is optimized by UltraLite on an ongoing basis, up to the maximum size (if specified). See: |
UltraLite Java edition databases support fixed cache sizes only. |
Maximum number of concurrent open connections supported by a database | Up to 14. | No limit. |
Maximum number of concurrent open connections to all databases | Up to 16 on a mobile device, and up to 64 on a desktop. | No limit. |
Maximum number of databases that can run concurrently | The UltraLite engine supports up to 8 on a mobile device, and up to 32 on a desktop. | No limit. |
Direct device connections to a Windows Mobile device from the desktop. | You prefix the connection string with WCE:\ before allowing desktop connections to the database that you deploy on a Windows Mobile device. See Windows Mobile. | Not applicable. |
SQL communication areas (SQLCA) | Up to 63. | Not applicable. |
File-based persistent store (database size) | 2 GB file or operating system limit on file size. | Limited by the operating system. |
Rows per table |
Up to 16 million. Sometimes changes to the row (deletes and updates) and other state information are maintained with the row data. This information allows those changes to be synchronized. So, 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 UltraLite transaction processing. |
Up to 16 million. Sometimes changes to the row (deletes and updates) and other state information are maintained with the row data. This information allows those changes to be synchronized. So, 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 UltraLite transaction processing. |
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 restriction excludes columns declared as LONG BINARY and LONG VARCHAR as these are stored separately. |
Row contents (after possible compression) must not exceed the database page size. |
Rows per database | Limited by the persistent store. | Limited by the persistent store. |
Table size | Limited by the database size. | Limited by the database size. |
Tables per database | Limited by the database size. | Up to 32000. |
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 practical limit is much less than 4000. | 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 practical limit is much less than 4000. |
Indexes per table | Limited by the database size. | Limited by the database size. |
Tables referenced per transaction | No limit. | No limit. |
Stored procedure length | Not applicable. | Not applicable. |
Stored procedures per database | Not applicable. | Not applicable. |
Triggers per database | Not applicable. | Not applicable. |
Nesting | Not applicable. | Not applicable. |
Number of publications | Up to 63. | Up to 63. |
Number of database pages | Limited by file size. | Up to 216. |
Database page size | 16 KB. | Minimum 256 bytes; up to 16 KB. |
Cursors per connection | The number of maximum allowable cursors on a given connection to an UltraLite database is 64 (all platforms). | The number of maximum allowable cursors on a given connection to an UltraLite database is 64 (all platforms). |
Strings | The row must fit on a page. | The row must fit on a page. |
Binary data types | The row must fit on a page. | The row must fit on a page. |
Long binary/long varchar size | Limited only by database size. | Limited only by database size. |
Blob size | Limited by file size. | Up to 224 bytes. |
Available Isolation levels | 0 (read uncommitted) or 1 (read committed). | 0 (read uncommitted). |
Cascading updates and deletes | Declarative referential integrity, where deletes and updates are cascaded, is a feature that is not supported in UltraLite databases, except during synchronization when deletes are cascaded for this purpose. | Not supported. |
Event scheduling and handling | An UltraLite event model differs from SQL Anywhere. | Not supported. |
UltraLite Java edition database compatibility |
UltraLite databases are not interchangeable with UltraLite Java edition databases. An UltraLite database can be converted into an UltraLite Java edition database and vice versa using the respective load and unload utilities. See: |
UltraLite databases are not interchangeable with UltraLite Java edition databases. An UltraLite database can be converted into an UltraLite Java edition database and vice versa using the respective load and unload utilities. See: |
Discuss this page in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |