支持并行机制以提高性能 数据库服务器目前支持使用多个处理器处理单个查询。当同时执行的查询的数目少于可用处理器的数目时,采用查询内并行机制将带来帮助。请参见高级:查询执行期间的并行。
支持数据库镜像 SQL Anywhere 目前支持数据库镜像,这是一种提高数据库可用性的机制。它需要使用在不同的计算机上运行并在同步或异步模式下相互通信的两台或三台数据库服务器。请参见数据库镜像。
添加了以下功能来支持数据库镜像:
数据库服务器的替代服务器名。请参见-sn dbsrv12 数据库选项和START DATABASE 语句。
ServerName 属性
AlternateServerName 属性
RetryConnectionTimeout 属性
ALTER DATABASE dbname FORCE START。请参见ALTER DATABASE 语句。
MirrorServerDisconnect 和 MirrorFailover 系统事件。请参见系统事件。
SQL Anywhere SNMP Extension Agent 的新陷阱。请参见陷阱。
向 EVENT_PARAMETER 函数添加的 MirrorServerName 参数。请参见EVENT_PARAMETER 函数 [System]。
除数据库镜像之外,SQL Anywhere 现在还为数据库和数据库服务器都提供了 Veritas 聚簇服务器代理(分别是 SADatabase 代理和 SAServer 代理)。请参见SQL Anywhere Veritas 聚簇服务器代理。
支持快照隔离 使用快照隔离时,数据库将在用户更改原始数据时保存一份原始数据副本,使想要读取该原始数据的其他用户可以访问它。快照隔离对于用户是完全透明的,并可有助于减少死锁数和锁争用。请参见快照隔离。
添加或增强了以下功能来支持快照隔离:
支持应用程序分析和诊断跟踪 现有的应用程序分析功能(如存储过程分析和请求记录)已集成到 Sybase Central 的 SQL Anywhere 插件的一个单独统一互动接口中。当您从 Sybase Central 分析应用程序时,将向您提供有助于提高数据库性能的建议。
有关在 Sybase Central 中进行应用程序分析的详细信息,请参见应用程序分析。
支持实例化视图 在某些环境中,数据库较大,并且频繁的查询造成对大量数据的重复性聚合和接合操作,为提高这些环境的性能,SQL Anywhere 现在支持实例化视图。请参见实例化视图。
数据库服务器已增强为自动根据开销确定可使用哪些实例化视图应答查询各部分,而不是使用该查询直接引用的基表。
添加了两个新的系统表(ISYSMVOPTION 和 ISYSMVOPTIONNAME)以存储有关实例化视图的信息。
支持 NCHAR 数据 SQL Anywhere 现在支持 NCHAR 数据类型。NCHAR 数据类型用于存储 Unicode 字符数据。请参见NCHAR 数据类型。
添加了以下新函数来支持 NCHAR:
以下函数(SORTKEY 和 COMPARE 函数)具有用来支持 NCHAR 数据类型的新参数:
SQL Anywhere 现在在使用 Unicode 归类算法 (UCA) 时会将多字节字符集进行正确排序。
初始化实用程序 (dbinit) 和卸载 (dbunload) 实用程序也具有用来支持 NCHAR 数据类型的新选项。请参见初始化实用程序 (dbinit)和卸载实用程序 (dbunload)。
SQL Anywhere 现在使用 Unicode 国际组件(International Components for Unicode,简称 ICU)来支持 Unicode。请参见国际语言和字符集。
为支持 ICU 以及对 NCHAR 数据的处理,进行了以下属性更改:
添加了一个新的 NcharCharSet 数据库和连接扩展属性。此属性返回数据库或连接正在使用的 NCHAR 字符集。
添加了一个新的 AccentSensitive 数据库属性。此属性返回区分重音功能的状态。
CharSet 数据库和连接属性现在是扩展属性。
支持视图依赖性 系统表现在存储关于视图依赖性的信息。系统表特别要跟踪数据库中每个视图所依赖的视图、表和列。当您对某视图所依赖的对象进行更改时,数据库服务器将自动执行附加操作以确保该视图定义不会保留在可能返回不正确结果的状态。请参见视图依赖性。
添加了两个新表(ISYSDEPENDENCY 和 ISYSOBJECT)以存储关于系统对象及其依赖性的信息。
改进了检查点算法 数据库服务器现在可以在发生检查点时启动该检查点并执行其它操作。以前,在发生检查点时所有活动都将停止。如果某检查点已在进行中,则启动新检查点的任何操作(如 ALTER TABLE 或 CREATE INDEX)都必须等到当前检查点结束才能执行。请参见检查点日志。
锁的分类 SQL Anywhere 现在支持四种不同种类的锁:模式锁、表锁、行锁和位置锁。sa_locks 系统过程已修改为更清晰地记录每个事务所持有的锁类型,以更准确地分析锁定问题。请参见锁定的工作方式和sa_locks 系统过程。
支持意图锁 已针对表锁和行锁引入了一种新类型的锁,称为意图锁。意图锁由应用程序用来表明其要更新某表或该表中的某组行的意图。意图锁目前是在应用程序使用 SELECT FOR UPDATE 语句或 FETCH FOR UPDATE 语句(或它们在各种编程接口中的相应构造)时获取。意图锁会阻塞其它意图锁和写锁,但不阻塞读锁。此支持为那些将锁定用作显式并发控制机制的应用程序提供了更高程度的并发性。请参见使用游标和意图锁。
在某些情况下消除的键范围锁定 对索引维护算法所做的更改现在允许数据库服务器在单独的索引条目(而不是某一范围的键)上放置写锁。这将改进并发性并消除多种情况下因并发的 INSERT 操作引起的不必要阻塞。请参见锁定的工作方式。
新索引实现 在 SQL Anywhere 的先前发行版本中包含两个不同的索引实现,它们根据索引列的声明大小自动选择。SQL Anywhere 10 中从头至尾使用的都是压缩 B 树索引的新实现,已淘汰了原有的 B 树索引技术。新索引将压缩格式的索引键值存储在索引条目中,与行中的值分开且不相同。这对快照隔离支持是必需的。
支持快照隔离 在 SQL Anywhere 的先前发行版本中,索引条目在 UPDATE 或 DELETE 语句上立即删除。为支持快照隔离,有可能若干个索引条目指向含有不同索引键值的同一逻辑行。这些多索引条目由数据库服务器管理,以便任何一个连接都只能看到任何给定行的一个条目。当不再需要这些额外的索引条目时,服务器内部的守护程序会将它们定期物理删除(在事务执行 COMMIT 或 ROLLBACK 时)。保留未提交的 DELETE 的索引条目还提高了 SQL Anywhere 的并发控制机制的语义一致性。请参见快照隔离。
改进了 BLOB 存储控制和性能 现在可以控制存储在表行中(内置)的 BLOB 值的量。还可以控制是否对 BLOB 值进行索引处理。这些增强改进了对 BLOB 的搜索和访问,并通过 CREATE TABLE 语句和 ALTER TABLE 语句中的三个新子句实现:INLINE、PREFIX 和 [NO] INDEX。现在可在同一个表的各行内部或之间共享 BLOB 值,消除了存储重复 BLOB 值的需要,从而降低了存储要求。请参见BLOB 注意事项、CREATE TABLE 语句和ALTER TABLE 语句。
支持列压缩 现在可以分别压缩表中的各个列。使用 deflate 压缩算法实现压缩。此算法是 COMPRESS 函数使用的同一压缩,也是在 Windows .zip 文件中使用的算法。请参见CREATE TABLE 语句和ALTER TABLE 语句。
支持表加密 您现在可以分开加密数据库中的各个表,而不必加密整个数据库来保护数据。表加密必须在初始化数据库后在数据库中启用。请参见表加密。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |