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

SQL Anywhere 12.0.1 » SQL Anywhere 12 - 更改和升级 » 11.0.0 版中的新功能 » SQL Anywhere » SQL Anywhere 的新功能

 

主要功能

以下列出了 SQL Anywhere 11.0.0 版中引入的主要功能。

  • 支持合并表   现在,通过 SQL Anywhere 可以将多个表、视图和系统过程结果合并到一个表或视图中。请参见MERGE 语句

  • 支持登录策略   SQL Anywhere 现已支持登录策略。登录策略是一组用于定义在为用户建立数据库连接时所要应用的规则的选项。SQL Anywhere 提供用于存储所有登录策略的缺省值的根策略。可以创建单独的登录策略以存储根登录策略选项的替换值。可以为每位用户指派一个登录策略,但不能通过组成员资格继承任何登录策略。可以根据需要修改对特定用户的策略指派。请参见登录策略

    要利用此功能,需要将数据库升级。请参见SQL Anywhere 服务器升级

  • 支持全文搜索   SQL Anywhere 现在支持全文搜索。全文搜索可在数据库中快速查找某个术语(单词)的所有实例。全文搜索与使用谓语(例如 LIKE、REGEXP 和 SIMILAR TO)进行的搜索不同,因为全文搜索是基于术语进行搜索并且使用文本索引而不是扫描表中的各行。请参见全文搜索

    您必须升级数据库才能使用全文搜索功能。请参见SQL Anywhere 服务器升级

  • 支持正则表达式   SQL Anywhere 现在支持使用两个新搜索条件 REGEXP 和 SIMILAR TO 的正则表达式。请参见REGEXP 搜索条件SIMILAR TO 搜索条件

    另请参见正则表达式概述LIKE、REGEXP 和 SIMILAR TO 搜索条件

  • 现在在事务日志中记录数据库选项设置   现在,在事务日志中记录在 LOAD 操作期间有效的数据库选项设置。这样,可确保在恢复期间应用事务日志而导致选项(例如 date_order 和 nearest_century)在原始 LOAD 操作与最终 LOAD 操作之间发生变化时,数据不会存在不一致。

  • 增强了优化程序对于索引的使用   在 SQL Anywhere 的索引功能方面进行了几处增强。您必须升级数据库才能使用这些新功能。请参见SQL Anywhere 服务器升级

    • 支持多索引扫描   将优化程序增强后,可以考虑多索引(多达四个),以便基于基本表上的多个谓语从该表检索数据。以前,每次查询只能指定一个索引作为索引提示。通过 SELECT 语句的 WITH 子句中的一个新索引提示,可以指定使用多索引扫描。请参见FROM 子句

      已经添加了一个新的表访问算法:多索引扫描。

    • 支持仅索引检索   已增强优化程序,使其支持仅索引检索。通过仅索引检索,仅使用索引中的数据而无需访问表中的各对应行就可以满足查询的要求。在可能的情况下,优化程序始终执行仅索引检索。可以使用 INDEX ONLY { ON | OFF } 提示控制是否执行仅索引检索。请参见FROM 子句

  • 对装载和卸载数据的增强   在装载和卸载数据方面进行了以下增强:

    • 从客户端计算机上的文件装载数据及向其卸载数据   使用 SQL 语句和函数读取和写入数据库服务器中的数据。已经实现的新功能针对驻留在客户端计算机上的文件扩展了此功能,即无需将客户端文件复制到数据库服务器上。对客户端计算机上的数据提供安全性和访问控制的同时,实现了高效率地传输数据。

      通过客户端库透明地完成对于客户端计算机上文件的实际读取,这意味着现有客户端应用程序可以立即开始从使用新 SQL 语言支持的新功能受益。

      要从这些新功能受益,客户端和数据库服务器都必须为 SQL Anywhere 11.0.0 版,并且客户端必须使用命令序列通信协议 (CmdSeq)。

      请参见访问客户端计算机上的数据

    • 将数据卸载到变量中   将 UNLOAD 语句增强后,其中包含一个 INTO VARIABLE 子句,通过该子句可将数据卸载到变量中。 请参见UNLOAD 语句

    • 从另一个表的某列中装载数据   将 LOAD TABLE 语句增强后,其中包含一个 USING COLUMN 子句,通过该子句可从另一个表的某列中装载数据。请参见LOAD TABLE 语句使用 LOAD TABLE 语句导入数据

      要利用此新功能,需要将数据库升级。请参见SQL Anywhere 服务器升级

    • 从某个值 (BLOB) 装载数据   将 LOAD TABLE 语句增强后,其中包含一个 USING VALUE 子句,通过该子句可从某个值表达式(例如函数或系统过程的结果)装载数据。请参见LOAD TABLE 语句使用 LOAD TABLE 语句导入数据

      要利用此新功能,需要将数据库升级。请参见SQL Anywhere 服务器升级

    • LOAD TABLE 语句恢复和镜像功能的增强   以前,在被镜像的数据库配置中,不支持使用 LOAD TABLE 语句从某个文件装载数据,因为在事务日志中仅记录 LOAD TABLE 语句,而不记录正在被装载的数据。此外,在恢复数据库时,除非在恢复期间存在原始装载文件,否则使用 LOAD TABLE 语句装载的数据不可恢复。

      在增强后的 LOAD TABLE 语句中包含以下三个新的记录选项子句:WITH CONTENT LOGGING、WITH ROW LOGGING 和 WITH FILE NAME LOGGING。通过这些子句,可以控制是否将装载的数据记录在事务日志中。在数据库镜像系统中,这些数据可用于装载镜像数据库。此外,在恢复期间,不再需要存在装载文件。请参见LOAD TABLE 语句

      要利用此功能,需要将数据库升级。请参见SQL Anywhere 服务器升级

  • 实例化视图的增强   对实例化视图的支持增强如下:

    • 支持快速实例化视图   现在,可将实例化视图配置为当基础表中的数据变化影响实例化视图中的数据时立即刷新。具有此刷新类型的视图称作快速视图;不立即刷新的视图现在称为手动视图。将在此发行版本之前创建的实例化视图视为手动视图,并且将其作为创建新实例化视图时的缺省视图。

      有关手动视图和快速视图的详细信息,请参见实例化视图将刷新类型设置为手动还是快速

      您必须升级数据库以使用支持此功能的那些系统过程。请参见SQL Anywhere 服务器升级

    • 立即刷新多个实例化视图的功能   以前,每次只能刷新一个实例化视图。在每次刷新操作之间对基础数据的更改会导致实例化视图之间的不一致。现在,通过使用相同的数据刷新多个实例化视图,可以为 REFRESH MATERIALIZED VIEW 语句指定一个实例化视图的列表。请参见REFRESH MATERIALIZED VIEW 语句刷新手动实例化视图

    • 用于 REFRESH MATERIALIZED VIEW 语句的新 WITH SHARE MODE 子句   已将新 WITH SHARE MODE 子句添加到 REFRESH MATERIALIZED VIEW 语句中。发生刷新操作时,此模式赋予其它事务对基础表的读取权限。指定此子句后,在执行刷新操作之前,所有基础基本表都获得了共享表锁。现在,缺省模式为 WITH SHARE MODE,除非将实例化视图定义为 IMMEDIATE REFRESH,否则将为数据库启用快照隔离。有关缺省刷新行为的详细信息,请参见REFRESH MATERIALIZED VIEW 语句

  • 支持查询文件或 BLOB 字符串的内容   现在,通过使用 FROM 子句的新 OPENSTRING 子句,可以查询文件或 BLOB 字符串中的数据。通过 OPENSTRING 子句,可以指定要查询的对象以及数据的模式和其它分析信息。请参见FROM 子句

    执行 OPENSTRING 操作时,会在执行计划中显示新计划项 OpenString。

  • 改进了的对压缩索引的支持   由于对压缩索引支持的改进工作,当通过卸载和重装来重建数据库时,重建的数据库可能会比原始数据库小。数据库大小的减小并 表示出现了问题或有数据丢失。

  • 对在镜像服务器上运行的数据库的只读访问   如果正在使用数据库镜像,现在则可以连接到在镜像服务器上运行的数据库。这样,可以将有可能耗费大量资源的报告操作下放给镜像服务器,同时使得主服务器处于可用状态。通过 -sm 服务器选项(可用于访问只读镜像数据库)提供数据库服务器名,可以连接到镜像数据库。请参见-sm dbsrv12 数据库选项(不建议使用)配置在镜像服务器上运行的数据库的只读访问