Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 11 - 更改和升级 » 8.0.0 版中的新功能 » 版本 8 中的新功能 » Adaptive Server Anywhere 的新功能

 

查询处理和数据库性能

  • 查询处理已得到改进   这一版提供了对查询执行引擎和优化程序的增强,从而使性能大大提高,尤其是对于复杂的查询。对 Adaptive Server Anywhere 查询处理的增强包括以下几个方面:

    • 对连接的内部处理更加完善。

    • 改进了用于评估其它可选访问计划的优化程序的成本模型。

    • 改进了执行模型。

      这些更改中大多数都是内部更改。文档在查询优化与执行中提供。

    这些更改使得输出结果的效率大大提高。使用临时工作表可能是一种执行查询非常高效的方式。有关详细信息,请参见在查询处理中使用工作表(使用 All-rows 优化目标)

    现在,优化程序可基于成本选择索引,而且不再像旧版本那样仅仅依赖于谓语的选择性。

    许多改进的查询处理不需要将数据库升级。要在此版本之前创建的数据库上使用新的开销模型,必须通过卸载和重装该数据库来升级数据库文件格式。

  • 新索引类型   添加了一个新的索引类型,从而提高了多列索引和包括宽列的索引的性能。该索引是一个压缩 B 树索引。

    Adaptive Server Anywhere 自动基于索引宽度(索引中所有列的宽度之和)创建合适类型的索引。当索引宽度大于 9 个字节并小于页面大小的 1/8(最大为 256 个字节)时,将会创建压缩 B 树索引;否则,Adaptive Server Anywhere 将会创建散列 B 树索引。

    不支持 CREATE INDEX 语句的 WITH HASH SIZE 子句。

    要在此版本之前创建的数据库上使用新的索引类型,必须通过卸载和重装该数据库来升级数据库文件格式。

    新增了一条限制:外键索引的大小和类型必须与相应的主键索引相同。

    如果最初使用缺省值 (WITH HASH SIZE 10) 指定了散列大小,dbunload 现在将忽略指定的散列大小。

  • 新数据库选项 optimization_goal   确定优化查询处理的意图:是迅速返回第一行,还是为最大程度地降低返回整个结果集的开销。缺省设置为优化返回第一行的速度。

    有关详细信息,请参见optimization_goal 选项 [数据库]

  • 表扫描的性能增强   对于在 Adaptive Server Anywhere 8.0 中创建的页面为 2K、4K 或 8K 的数据库,当执行需要顺序表扫描的查询时其性能会得到增强。Adaptive Server Anywhere 将为大表创建位图,也称为页映射。位图列出了包含一个给定表的数据的所有页。有了该功能,只需要一个 I/O 操作即可搜索庞大的表。

    有关详细信息,请参见表大小和页面大小

    对于在此发行版本发布之前创建的数据库,要获得此增强功能所带来的益处,必须通过卸载后再重装该数据库来升级数据库文件格式。

  • 改进了检查点日志的存储   现在,检查点日志存储在数据库文件末尾处的连续几页中。这样就可以允许对检查点日志的内容进行顺序扫描和多页写入,从而改善性能。

    有关检查点日志的详细信息,请参见了解检查点日志

    对于在此版本之前创建的数据库,要获得此增强所带来的益处,必须通过卸载后再重装该数据库来升级数据库文件格式。

  • 计划高速缓存   现在,Adaptive Server Anywhere 可为在存储过程、用户定义的函数和触发器中执行的查询和 INSERT、UPDATE 和 DELETE 语句高速缓存执行计划。要高速缓存的最大计划数量用选项设置 max_plans_cached 来指定。要禁用计划高速缓存,请将此选项设置为 0。

    有关详细信息,请参见计划高速缓存

  • 替换缺省 I/O 成本模型   现在,您可以使用带有 CALIBRATE 子句的 ALTER DATABASE 语句来替换缺省的 I/O 成本模型。

    有关详细信息,请参见ALTER DATABASE 语句

  • 新数据库选项 max_plans_cached   设置存储在高速缓存中的执行计划的最大数量。

    有关详细信息,请参见max_plans_cached 选项 [数据库]

  • 新数据库选项 min_table_size_for_histogram   此选项设置用来创建直方图的表的最小大小。直方图存储有关一个列中值的分布信息,优化程序利用它们来选择一个高效的执行计划。