UltraLite, UltraLite Java edition, and SQL Anywhere feature comparisons

The following table illustrates feature comparisons between UltraLite and SQL Anywhere. UltraLite features are supported by UltraLite Java edition unless otherwise specified.

Note

The UltraLite database management system adds 750-1000 KB to the size of your application while UltraLite Java edition adds 500 KB. The SQL Anywhere database, database server, and synchronization client add approximately 6 MB.

Feature SQL Anywhere UltraLite Considerations
Transaction processing, and multi-table joins X X
Triggers, stored procedures, and views X
External stored procedures (callable external DLLs) X
Built-in referential and entity integrity X X

UltraLite Java edition does not enforce foreign key constraints.

See Avoiding synchronization issues with foreign key cycles.

Cascading updates and deletes X Limited1 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.
Dynamic, multiple database support X X
Multi-threaded application support X X
Row-level locking X X
XML unload and load utilities X

UltraLite uses separate administration tools to complete XML load and unloads. These features are not built into the runtime.

For UltraLite, see:

For UltraLite Java edition, see:

XML export and import utilities X
SQLX functionality X
SQL functions X X

Not all SQL functions are available for use in UltraLite applications. If you use an unsupported function, you trigger an error. See UltraLite SQL functions.

SQL statements X Limited The scope of SQL statements are limited in UltraLite compared to SQL Anywhere. See UltraLite SQL statements.
Integrated HTTP server X
Strong encryption for database files and network communications X X
Event scheduling and handling X X1 An UltraLite event model differs from SQL Anywhere.
High-performance, self-tuning, cost-based query optimizer X UltraLite has a query optimizer that is not as extensive as that of SQL Anywhere. Therefore, UltraLite does not perform as highly on complex queries as SQL Anywhere.
Choice of several thread-safe APIs X X UltraLite gives application developers a uniquely flexible architecture that allows for the creation of applications for changing and/or varied deployment environments. See Choose an UltraLite API for Windows Mobile.
Cursor support X X See UltraLite and UltraLite Java edition database limitations.
Dynamic cache sizing X X1

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.

Database recovery after system or application failure X X
Binary Large Object (BLOB) support X X UltraLite cannot index or compare BLOBs.
Windows Performance Monitor integration X
Online table and index defragmentation X
Online backup X
Direct device connections to a Windows Mobile device from the desktop. X1 SQL Anywhere databases need a database server before allowing desktop connections to the database that you deploy on a Windows Mobile device. On UltraLite, you prefix the connection string with WCE:\. See Windows Mobile.
High-performance updates and retrievals through the use of indexes X X

UltraLite uses a mechanism to determine whether each table is searched using an index or by scanning the rows directly.

Additionally, you can hash indexes to speed up data retrieval. See UltraLite max_hash_size creation parameter.

Synchronizing to Oracle, DB2, Sybase Adaptive Server Enterprise, Microsoft SQL Server, MySQL, or SQL Anywhere X X
Built-in synchronization X Unlike SQL Anywhere deployments, UltraLite does not require a client agent for synchronization. Synchronization is built into the UltraLite runtime to minimize the components you need to deploy. See UltraLite clients.
In-process execution X
Computed columns X
Declared temporary tables/global temporary tables X
System functions X
Timestamp columns X X

SQL Anywhere Transact-SQL timestamp columns are created with the DEFAULT TIMESTAMP default.

UltraLite timestamp columns are created with the DEFAULT CURRENT TIMESTAMP default. Therefore, UltraLite does not automatically update the timestamp when the row is updated.

User-based permission scheme to determine object-based ownership and access X UltraLite is primarily designed for single user databases in which an authorization system is not needed. However, you can include up to four user IDs and passwords, which are used for authentication purposes only. These users have access to all database objects. See UltraLite users.
Spatial data X Limited UltraLite supports point data only.
Full text data X

1 Not available for UltraLite Java edition.