UltraLite feature comparison

Certain features or metrics may help you determine which database type is best suited to your deployments.

The footprint of an UltraLite database and management system is small—which only adds 400-500 KB to your application size in the case of the C/C++ version. Comparatively, the SQL Anywhere database, server, and synchronization client add approximately 6 MB. While UltraLite does not support some of the features included with the SQL Anywhere (for example, triggers and stored procedures), all of the basic features of a relational database are included.

UltraLite has a query optimizer, but it is not as extensive as that of SQL Anywhere. Therefore, the UltraLite optimizer may not provide as high performance as the SQL Anywhere optimizer on complex queries. However, if you are running simple queries, UltraLite can run faster. See Query access plans in UltraLite.

Cache sizing is static in UltraLite. Nonetheless, UltraLite allows you to set the cache size when the database is started, which gives you the ability to scale cache size accordingly. See UltraLite CACHE_SIZE connection parameter.

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

Small footprint, which can be as small as 500 KB

X

Small footprint devices tend to have relatively slow processors. UltraLite employs algorithms and data structures that are targeted for these devices, so UltraLite continues to provide high performance and low memory use.

Supports both Palm OS and Symbian OS

X

Direct device connections to a Windows CE device from the desktop.

X

SQL Anywhere databases need a database server before allowing desktop connections to the database that you deploy on a Windows CE device. On UltraLite, you simply need to prefix the connection string with WCE:\. See Windows CE.

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.

Unlike SQL Anywhere deployments, UltraLite does not require a client agent to facilitate 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

UltraLite does not support SQL Anywhere system functions, including property functions. You cannot include them as part of your UltraLite application.

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.

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 The role of user authentication.