远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从http://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站http://infocenter.sybase.com/help/index.jsp何时会被完全迁移到SAP Support上!
Sybase官方手册英文版有html和pdf两种格式,而中文版手册只有pdf一种格式。为了国内Sybase用户更方便、快捷地搜索Sybase常见产品的官方手册内容,特将中文版Sybase官方手册转为html格式!
Sybase产品官方手册中文版的html格式所有内容的版权归SAP公司所有!本博客站长是Sybase数据库的铁杆粉丝!

如有Sybase数据库技术问题需要咨询,请联系我!

  QQ :289965371 点击这里给我发消息
  Email:

以下官方手册为ASE 15.7 ESD#2中文版:

  1. 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
  2. 新增功能摘要
  3. 新增功能指南
  4. ASE 15.7 发行公告
  5. 配置指南(windows)
  6. 安装指南(windows)
  7. 参考手册:构件块
  8. 参考手册:命令
  9. 参考手册:过程
  10. 参考手册:表
  11. Transact-SQL® 用户指南
  12. 系统管理指南,卷 1
  13. 系统管理指南,卷 2
  14. 性能和调优系列:基础知识
  15. 性能和调优系列:锁定和并发控制
  16. 性能和调优系列:监控表
  17. 性能和调优系列:物理数据库调优
  18. 性能和调优系列:查询处理和抽象计划
  19. 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
  20. 性能和调优系列:利用统计分析改进性能
  21. 程序员参考 jConnect for JDBC 7.0.7
  22. Adaptive Server Enterprise 中的 Java
  23. 组件集成服务用户指南
  24. Ribo 用户指南
  25. 内存数据库用户指南
  26. Sybase Control Center for Adaptive Server® Enterprise
  27. 安全性管理指南
  28. 实用程序指南

 


< 上一个 | 内容 | 下一步 >

减少索引维护


利用 create index 命令的 fillfactor 选项,可以指定索引页和聚簇索引的 数据页的填充程度。指定除 100% 之外的任意数量的 fillfactor 值时, 数据和索引行使用的磁盘空间多于缺省设置情况下需要的空间。

如果要为大小将增加的表创建索引,可使用 fillfactor 选项减少页面拆 分对表和索引的影响。

创建索引时将使用 fillfactor,在执行表重组操作 (例如,在重建聚簇 索引或对表运行 reorg rebuild 时)过程中使用 reorg rebuild 重建索引 时将再次用到此命令。 fillfactor 值不保存在 sysindexes 中,且不会随 时间的推移对数据或索引页的填充度进行维护。以后对表执行插入 或更新操作期间不会不断对 fillfactor 进行维护。


如果最初索引的叶级页只部分充满(由于 fillfactor 值所致),但由于进行 后续插入而使用了此可用空间,则叶级页日后将可能拆分。使用 reorg rebuild...index 可构建叶级页,应使用 fillfactor 的指定值创建叶级页,以便 将来进行插入时不会引发此类拆分。对整个索引级运行 reorg rebuild,以 使 fillfactor 的值可以为整个索引提供更多叶级空间。如果存在本地索引, 应在分区级运行 reorg rebuild index,以便仅调整本地索引分区中的叶页, 为将来的叶级插入保留更多空间。


image

注释 Adaptive Server 15.0 及更高版本能够在本地索引分区上运行 reorg rebuild...index

image


发出 create index 命令时,作为该命令一部分指定的 fillfactor 值按如下方 式应用:

聚簇索引:

在所有页锁定表中, fillfactor 应用于数据页。

DOL 锁定表中, fillfactor 应用于索引的叶页,数据页将完全 充满 (除非已使用 sp_chgattribute 存储该表的 fillfactor)。

非聚簇索引 — fillfactor 值应用于索引的叶页。

在表上运行 reorg rebuild 时,也可使用 sp_chgattribute 来存储所用的

fillfactor 值。

请参见 49 页的 “设置 fillfactor


使用 fillfactor 的优势

fillfactor 设置为较小值,可暂时改善性能。数据库插入操作增加了用 于数据或索引页的空间,这会使性能降低。

使用较低的 fillfactor 值:

可减少叶级索引以及所有页锁定表的数据页上的页面拆分。

可提高带有进行过插入操作的聚簇索引的 DOL 锁定表中数据行的 聚簇程度。

可减少使用页级锁定的表的锁争用,因为它降低了两个进程同时需 要相同数据或索引页的可能性。

由于较少发生页面拆分,因此可帮助保持数据页和非聚簇索引叶级 的高 I/O 效率。这意味着扩充上的八页有可能按顺序排列。


使用 fillfactor 的缺点

如果使用 fillfactor (特别是非常小的值),可能会对查询和维护活动产生 以下影响:

必须为对非聚簇索引进行表扫描或叶级扫描的每个查询读取更多页。

某些情况下,由于数据级将存在更多页且各索引级也可能存在更多 页,因此可以向索引 B 树结构添加一级。

索引大小增加会降低索引的空间利用效率。由于无法在页级调优 fillfactor 值,因此具有倾斜数据分配的页面拆分会频繁发生,即使有 可用的保留空间也是如此。

dbcc 命令必须检查更多页,因此需要更长时间。

由于必须转储更多页,因此运行 dump database 所需的时间将增加。 dump database 复制存储数据的所有页,但不转储尚未使用的页。转 储和装载也可能使用更多磁带。

Fillfactor 值将随时间逐渐减弱。如果使用 fillfactor 来降低页面拆分对 性能的影响,那么当页面拆分开始降低性能时,应监控系统并重新 创建索引。


设置 fillfactor


使用 sp_chgattribute 可存储每个索引和表的 fillfactor 百分比。用 sp_chgattribute

设置的 fillfactor 适用于以下情况:

对使用任何锁定方案的表运行 reorg rebuild

使用 alter table...partition by 对表进行重新分区。

使用 alter table...lock 更改表的锁定方案。或者使用需要复制表的 alter table...add/modify 命令。

运行 create clustered index,并为表存储一个值。

请参见 《参考手册:命令》,了解有关这些命令的详细信息。

如果使用缺省的填充因子 0,则在创建新索引时,索引管理进程将在每 个索引页上为另外两个行保留空间。将 fillfactor 设置为 100% 后,它将 不再为这些行保留空间。仅在计算聚簇索引页数量和非叶页数量时, fillfactor 才会对大小计算产生影响。这两个计算都须从每页行数中减去 2。 从这些计算中消除 -2


fillfactor 的其它值会减少数据页和叶索引页上每页的行数。使用 fillfactor 时 若要保证计算出的值正确,应将可用数据页的大小 (2016) 乘以 fillfactor。 例如,如果 fillfactor 75%,则数据页将可容纳 1471 个字节。计算每页 行数时,用此值代替 2016 。有关这些计算的详细信息,请参见 80 页 的 “计算数据页的数量 83 页的 “计算索引中叶页的数量

当因 create clustered index 命令需要建立非聚簇索引时, Adaptive Server

不会应用存储的 fillfactor

如果使用 create clustered index 指定 fillfactor 值,该值将应用到每个非 聚簇索引。

如果未使用 create clustered index 指定任何 fillfactor 值,则服务器范围 的缺省值(使用 default fillfactor percent 配置参数设置)将应用于全部 索引。


fillfactor 示例


以下示例演示 fillfactor 值的应用情况。


无存储的 fillfactor


如果未在 sysindexes 中存储 fillfactor 值, Adaptive Server 将应用在 create index 中指定的 fillfactor ,如 3-1 所示。

create clustered index title_id_ix on titles (title_id)

with fillfactor = 80

3-1:没有表级存储值时应用的 fillfactor

image

image

命令 所有页锁定表 DOL 锁定表

create clustered index

数据页:80 数据页:完全充满 叶页:80

image

非聚簇索引重建 叶页:80 叶页:80

image


非聚簇索引使用在 create clustered index 命令中指定的 fillfactor

如果未在 create clustered index 中指定 fillfactor,则非聚簇索引将始终使用 服务器范围的缺省值;而绝不会使用 sysindexes 中的值。


用于 alter table...lock reorg rebuild 的值

如果未存储 fillfactor 值, alter table...lock reorg rebuild 都会应用 default fillfactor percentage 设置的服务器范围的缺省值。将应用缺省的 fillfactor , 如 3-2 所示。

3-2:重建期间应用的 fillfactor

命令

所有页锁定表

DOL 锁定表

聚簇索引重建

数据页:缺省值

数据页:完全充满 叶页:缺省值

非聚簇索引重建

叶页:缺省

叶页:缺省


存储的表级或聚簇索引 fillfactor

以下命令为表存储的 fillfactor 值为 50

sp_chgattribute titles, "fillfactor", 50

如果将存储的 fillfactor 的表级值设置为 50,此 create clustered index 命令 将应用 fillfactor 值,如 3-3 所示。

create clustered index title_id_ix on titles (title_id)

with fillfactor = 80

3-3:为聚簇索引使用存储的 fillfactor

命令

所有页锁定表

DOL 锁定表

create clustered index

数据页:80

数据页:50 叶页:80

非聚簇索引重建

叶页:80

叶页:80


image

注释 运行 create clustered index 时,存储在 sysindexes 中的所有表级

fillfactor 值都将重置为 0

要在 create clustered index reorg 命令期间指出仅数据锁定数据页已充 满,必须首先发出 sp_chgattribute

image


存储值后 alter table...lock 的影响

alter table...lock 命令复制表并重建索引时,将使用 fillfactor


带聚簇索引的表


在所有页锁定表中,表和聚簇索引共享 sysindexes 行,以便只有一个 fillfactor 值可被存储并用于表和聚簇索引。可以通过提供表名或聚簇索 引名为数据页设置 fillfactor 值。以下命令将值保存为 50

sp_chgattribute titles, "fillfactor", 50

以下命令将值保存为 80,覆盖由前一个命令设置的值 50

sp_chgattribute "titles.clust_ix", "fillfactor", 80

如果在发出上述 sp_chgattribute 命令之后变更 titles 表以使用仅数据锁定, 则 fillfactor 存储值 80 将用于数据页和聚簇索引的叶页。

DOL 锁定表中,有关聚簇索引的信息存储在 sysindexes 的单个行中。 为表指定的 fillfactor 值应用于数据页,为聚簇索引指定的 fillfactor 值应用 于聚簇索引的叶级。

当更改 DOL 锁定表以使用所有页锁定时,为表存储的 fillfactor 用于数据 页。 Adaptive Server 将忽略为聚簇索引存储的 fillfactor

3-4 显示 fillfactor 值,将使用 alter table...lock 命令 (在运行完上述

sp_chgattribute 命令后执行)对数据和索引页设置这些值。

3-4fillfactor 的存储值在变更表期间的作用

alter table...lock

无聚簇索引

聚簇索引

从所有页锁定到仅数据锁定

数据页:80

数据页:80 叶页:80

从仅数据锁定到所有页锁定

数据页:80

数据页:80


image

注释 alter table...lock 将表的所有 fillfactor 存储值设置为 0

image


为非聚簇索引存储的 fillfactor

每个非聚簇索引由一个单独的 sysindexes 行表示。这些命令为两个非聚 簇索引存储不同的值:

sp_chgattribute "titles.ncl_ix", "fillfactor", 90 sp_chgattribute "titles.pubid_ix", "fillfactor", 75

3-5 显示当上述 sp_chgattribute 命令用于存储 fillfactor 值时, reorg rebuild 命令对 DOL 锁定表的影响。

3-5:存储的 fillfactor 值在 reorg rebuild 期间的作用

image

image

reorg rebuild 无聚簇索引 聚簇索引 非聚簇索引

DOL 锁定表 数据页:80 数据页:50 叶页:80

ncl_ix 叶页: 90

pubid_ix 叶页: 75

image


使用 sorted_data fillfactor 选项

当要排序的数据已按索引键指定的顺序排列时,使用 create index sorted_data 选项。这可以使 create clustered index 跳过数据排序、重新分 配,以及重建表的数据页步骤。

例如,如果批量复制到表中的数据已按聚簇索引键的顺序排列,则使用 sorted_data 选项创建索引而不执行排序。如果数据不需要复制到新页, 则不应用 fillfactor。但使用其它 create index 选项可能仍要求复制。

请参见 95 页的 “对已排序的数据创建索引




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具:ReadASADB。
此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。
恢复Sybase SQL Anywhere的工具在国内应该算首创。

ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------