Following is a list of miscellaneous enhancements introduced in SQL Anywhere version 11.0.0.
Altering invalid views Previously a regular view with INVALID status could not be altered, requiring you to drop the view and recreate it. Now, you can alter an invalid view to change the definition so that it is no longer invalid.
Synonym added for the LENGTH function You can now use LEN as a synonym for LENGTH when executing the LENGTH function. See LENGTH function [String].
Support added for big-endian and little endian UTF-16 encodings SQL Anywhere now supports both big-endian and little endian UTF-16 encoding on all platforms, regardless of the endianness of the platform. You can use UTF-16 encoding in the LOAD TABLE and UNLOAD statements and with the CSCONVERT function. However, you cannot use UTF-16 encoding as the encoding for a connection or database. See LOAD TABLE statement and UNLOAD statement.
A database upgrade is required to take advantage of this feature. See SQL Anywhere Server upgrades.
Index performance enhancements Index performance has been improved, especially when you are operating with a full cache. To benefit from the index performance enhancements, you must rebuild your indexes. The easiest way to do this is to rebuild the database. After rebuilding, you may find that your database file is much smaller. This is normal and should not be a cause for concern.
INLINE and PREFIX settings now respected for compressed columns Previously, the INLINE and PREFIX settings specified for a column were ignored and treated as 0 if the column was compressed. Now, the settings for the column are respected, even if the column is compressed. See BLOB considerations and CREATE TABLE statement.
Host variables now allowed in batches References to host variables are now allowed within batches, with some restrictions. See Batches.
Enhancements to the InList algorithm Previously, the InList algorithm was used by the optimizer only if all the elements of the IN list were either constant values or could be evaluated at optimization time to a constant value. Now, the IN list predicate can contain values that are evaluated only at open time (such as CURRENT DATE, CURRENT TIMESTAMP, or non-deterministic system and user-defined functions), as well as values that are constant within one execution of a query block (outer references).
Plan caching for simple DML statements Plan caching has been extended to include SELECT statements that qualify for query bypass (simple statements). See Plan caching.
Size of new databases reduced The following system table columns are now compressed to reduce the size of new (empty) databases by approximately 200 KB. This is beneficial when creating databases for use on Windows Mobile.
Increased default and minimum packet size The default packet size has been increased to 7300 bytes on all operating systems except Windows Mobile. On Windows Mobile, the default continues to be 1460 bytes. The minimum packet size has been increased to 500 bytes. See CommBufferSize (CBSIZE) connection parameter and -p dbeng12/dbsrv12 server option.
For more information, see ODBC-based server classes.
If you previously used the SQL Anywhere for MS Access Migration utility (upsize tool) to migrate Microsoft Access databases to SQL Anywhere, you can now use the msaccessodbc class.
Database server messages enhancements Messages from the database server now have a category and severity assigned to them. You can access this information using the sa_server_messages system procedure, and you can configure the number of messages maintained with the MessageCategoryLimit property. See sa_server_messages system procedure.
New VALIDATE_COMPLETE parameter for a_validate_type enumeration The a_validate_type enumeration has a new parameter, VALIDATE_COMPLETE for performing all possible validations on the database. See a_validate_db structure [database tools].
External unload enhancements When you perform an external unload of a database, the beginning of the reload.sql that is generated now contains a commented CREATE DATABASE statement. This statement can be used to create a database that is equivalent to the one being unloaded.
If the unloaded database was created with version 9 or earlier of SQL Anywhere and had a custom collation, the COLLATION clause appears as follows:
COLLATION collation-label DEFINITION collation-definition
where collation-definition is a string that specifies the custom collation.
If the unloaded database was created with strong encryption, the value of the KEY clause in the CREATE DATABASE statement appears as three question marks (???).
For more information, see Internal versus external unloads and reloads.
For more information, see SQL Anywhere MIB reference.
Deadlock system event The Deadlock system event fires whenever a deadlock occurs. The event handler can use the sa_report_deadlocks procedure to obtain information about the conditions that led to the deadlock. You must upgrade existing databases if you want to use the Deadlock system event. See System events.
Increased database limits Several SQL Anywhere database limits have been increased. See SQL Anywhere size and number limitations.
Costed Best Plan Number of different best access plans found by the optimizer.
Costed Plans Number of different access plans considered by the optimizer.
Optimization Time The time spent optimizing the query.
Graphical plans now display the following entries:
Costed Best Plan Located in the Optimizer Statistics section of the root node, this entry provides the number of different best access plans found by the optimizer.
Costed Plans Located in the Optimizer Statistics section of the root node, this entry provides the number of different access plans considered by the optimizer.
Optimization Time Located in the Optimizer Statistics section of the root node, this entry provides the time spent optimizing the query.
FirstRowRunTime Located in any Node Statistics section, this entry provides the time to fetch the first row.
Joins considered Located in the Advanced Details section of any join operator, this entry lists all join operators considered by the optimizer during the optimization process for the subtree on the right side of the join operator.
Prefilter predicates Located in a new scan node section in the Details pane, this entry lists all predicates that are evaluated before the scan is started.
Located in a scan node section in the Details pane, this entry lists the predicates that are evaluated as columns that are fetched from the row. If a scan predicate rejects
a row, further columns are not read. Scan predicates are simple, single column predicates such as
T.x <= 3 or
T.x IS NULL.
Post scan predicates Located in a new scan node section in the Details pane, this entry lists the predicates that are evaluated immediately after a row has been read from the table page. Post scan predicates can refer to multiple columns and can use functions or arithmetic.
Residual predicates Located in a new scan node section in the Details pane, this entry lists predicates that are evaluated after a set of rows has been fetched into memory. Residual predicates usually contain complex operations such as subqueries or user-defined functions and can not be evaluated as scan predicates or post scan predicates.
Indexes considered Located in the Advanced Details pane, this entry lists all the index or table scans considered by the optimizer during the optimization process for the table referenced by this scan operator. The format of each item in the list is similar to the details listed for a scan operator used in the access plan in the Details pane.
Primary Key Table Located in the Index section of an index scan operator, this entry provides the primary key table name.
Primary Key Table Estimated Rows Located in the Index section of an index scan operator, this entry provides the number of rows in the primary key table.
Primary Key Column Located in the Index section of an index scan operator, this entry provides the names of the primary key columns.
Sequential Transitions Located in the Index section of an index scan operator, this entry provides the statistics kept for each physical index indicating how clustered the index is.
Random Transitions Located in the Index section of an index scan operator, this entry provides the statistics kept for each physical index indicating how clustered the index is.
Key Values Located in the Index section of an index scan operator, this entry provides the number of unique entries in the index.
Discuss this page in DocCommentXchange.
|Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1|