2

Few products retain a coherent vision and a top-flight technical team long enough to celebrate a Version 10 release; even then, its a dubious achievement if it entails excessive feature creep or over-specialization.
SQL Anywhere 10, were pleased to find, is a Version 10 that was worth the wait.

Expected to ship in September from the iAnywhere Solutions unit of Sybase, the latest SQL Anywhere bundle of database foundations and tools looks more like a whole new product line than a typical update release. Announced pricing of the full SQL Anywhere package begins at $599 for five users or $2,499 per CPU for a server license with any number of clients.

The package includes the SQL Anywhere relational database, UltraLite database system for mobile devices, MobiLink and SQL Remote synchronization tool kits, and QAnywhere application-to-application messaging extensions for the MobiLink synchronization server and the SQL Anywhere Web services facility. We concentrated our tests on the application development and database administration workloads of the in-house IT builder.
The SQL Anywhere 10 beta advances on four fronts. Click here to read more.
The primary portal into the SQL Anywhere system is the visual Sybase Central console (see top screen at right). Sybase Central provides a convenient administrative shell and offers a plug-in architecture that iAnywhere has exploited to add many improved tools. Setup for data replication and data synchronization operations, for example, is newly aided by a graphical interface, and many more profiling tools are now available.
The limited profiling and optimization aids of Version 9 and earlier were mainly focused on automated index recommendations. Those aids are now overshadowed by a far more comprehensive slate of alerts to potential problems, plus analytic tools for collecting and reviewing an almost overwhelming number of measures of database behavior and performance. We found these quite accessible and straightforward to apply during our tests.
For those with an interest in large-scale enterprise applicationsespecially those making complex queries against volatile datathe two most significant improvements in Version 10 are its materialized views and snapshot isolation options.
Materialized views are pre-computed result sets from operations such as large joins. Complex applications can benefit from definition and scheduled regeneration (presumably during off-peak hours) of a materialized view, which will then be used (transparently to application code) by the SQL Anywhere optimizer to dramatically reduce the time for subsequent query completion.
Mileage will vary, to be sure, with specific combinations of data set size and query complexity, not to mention the storage space required to maintain these precomputed results. Evaluation scripts included with the product will enable developers to take their own measure of the resulting improvements.
Also speeding queries in Version 10 is a new virtual-machine implementation for the query engine, using an internal bytecode representation, which improves performance in repetitive procedures by eliminating redundant interpretation of iterated expressions. The newly introduced parallel processing within queries speeds execution on multi-CPU systems.
Snapshot isolation, invoked explicitly in queries, allows an application to reduce the nuisance of deadlocks and blocks in concurrent operations by letting the database maintain multiple versions of some table rows. This has required substantial changes to indexing and is one of the reasons that upgrading to Version 10 will require a bit of work, as discussed further below. Following isolation, a query can work with the snapshot versions of the affected rows while other operations proceed against the live database.
The use of snapshots involves trade-offs between real-time consistency and application performance, with three different types of snapshots that enable (and require) careful choice of the desired degree of decoupling of data row state. Snapshots also let an application ensure that all its tables reflect the state of the data at the same moment in time, a potential benefit in auditing and other applications where consistency is more important than real-time currency.
Developers with interests that lie outside the enterprise data center will find ample iAnywhere resources at their disposal: The developer who wants to support mobile users of Microsofts Pocket PC, Palms Palm OS and Symbians Symbian OS devices will find an extensive collection of scripted demonstrations with supporting documents and data files in the evaluation materials available at www.ianywhere.com/products/sql_anywhere_resources.
Developers also will have the option of downloading a free, nonexpiring Developer Edition of the SQL Anywhere package from that same URL, although the Version 10 update was not yet available when we performed our review. The developer license for Version 10 likewise had not been posted, but iAnywhere officials told eWEEK Labs that the licenses terms will be similar to those for Version 9, which enable single-seat use for internal evaluation, development and testing.
Two burdens on any product with nine previous versions are those of backward compatibility and forward upgrade convenience. SQL Anywhere 10 achieves both goals as well as one can expect for such a complex and mature product line. Use of the Version 10 database server requires database rebuilding; however, client applications can connect to the Version 10 server using SQL Anywhere technologies from Version 6 or later.
The Version 10 MobiLink synchronization server requires Version 8 or later clients; upgrades to a MobiLink installation require the invocation of upgrade scripts in a specific sequence of database, server and clients.
We found SQL Anywheres accessibility to scripts and command-line control merely typical, were sorry to say, in their vocabularies of cryptic options and their verbose but not especially illuminating error messages.
Where a new version of SQL Anywhere is being installed, especially if multiple versions are being retained during transition, path variables must be manually checked to ensure that older versions of executable files are not allowed to shadow newer executables with the same name. File names are intentionally kept the same from one release to the next, the documentation warned us, to minimize the need for gratuitous changes to code.
Next page: Evaluation Shortlist: Related Products.

Peter Coffee is Director of Platform Research at salesforce.com, where he serves as a liaison with the developer community to define the opportunity and clarify developersÃÃÃ technical requirements on the companyÃÃÃs evolving Apex Platform. Peter previously spent 18 years with eWEEK (formerly PC Week), the national news magazine of enterprise technology practice, where he reviewed software development tools and methods and wrote regular columns on emerging technologies and professional community issues.Before he began writing full-time in 1989, Peter spent eleven years in technical and management positions at Exxon and The Aerospace Corporation, including management of the latter companyÃÃÃs first desktop computing planning team and applied research in applications of artificial intelligence techniques. He holds an engineering degree from MIT and an MBA from Pepperdine University, he has held teaching appointments in computer science, business analytics and information systems management at Pepperdine, UCLA, and Chapman College.