Performance enhancements

Following is a list of performance enhancements introduced in version 12.0.0 for which there are no user-visible changes other than performance improvement.

  • Improvements to locking when updating primary rows   Updating a non-key column in a primary row and modifying foreign rows referring to that row no longer interfere with each other. For example, in the sample database, a sales_order row can be added while the corresponding customer address is being updated, without one operation having to wait on the other. See sa_locks system procedure and Objects that can be locked.

  • Reduced locking at isolation levels 2 and 3   Read locks on individual rows are no longer obtained when a table is locked in share mode (LOCK TABLE...IN SHARE MODE statement). This can result in reduced locking overhead at isolation levels 2 and 3.

  • Improved index performance   SQL Anywhere 12 includes enhanced algorithms and a new on-disk layout to improve the performance of deleting large numbers of clustered sequential values from an index.

  • Improved validation performance   SQL Anywhere 12 includes many enhancements to improve the validation of large databases.

  • Improved request prioritization   SQL Anywhere 12 has been enhanced to boost the priority of I/0 bound requests, which results in better utilization of hardware resources.

  • Improved remote data access performance   SQL Anywhere 12 includes many enhancements to improve remote data access performance, including improved proxy table performance.

  • New cost model   SQL Anywhere 12 includes a CPU cost model that more accurately estimates query execution costs on modern hardware. This behavior may cause changes to access plans for some queries.

  • Enhancement to queries embedded in user-defined functions   SQL queries embedded in user-defined functions can now be in-lined by the query optimizer, which avoids a procedure context switch with each invocation and provides the optimizer with new degrees of freedom with which to optimize the statement.

  • Improvements when converting expressions to different data types   Improvements have been made to the evaluation rules the database server uses when converting an expression to a different data type. The new evaluation rules make the conversion more efficient to execute.