远程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. 实用程序指南

 


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

为已转移行和插入留出空间

设置 reservepagegap 值可减少存储分段,因而也会降低维护活动 (如运 行 reorg rebuild 并为某些表重建索引)的频率。 DOL 锁定表的优良性能 要求表使用的页、扩充和分配单元上有优良的数据聚簇。

只要附近有空间用于存储转移行和按索引键顺序插入的行,物理存储中 的数据和索引页的聚簇程度就将保持很高。当需要分配其它页时,使用 reservepagegap 空间管理属性可保留空白页以进行扩展。

在表上创建聚簇索引或在运行 reorg rebuild 后,行和页的集群比通常为 1.0,或非常接近 1.0。但是,未来的数据修改可能引起行转移,并可能 要求分配附加的数据和索引页来存储插入的行。

可以为所有页锁定表和 DOL 锁定表的数据和索引层页设置保留页间距。


扩充分配命令和 reservepagegap

扩充分配表示以八的倍数分配页,而不是一次分配一页。这会减少日志 记录活动,因为只写入一个日志记录而非八个。

执行扩充分配的命令有:select intocreate indexreorg rebuildbcpalter table...lock 以及 alter table...unique primary key 约束选项,因为这些 约束可以创建索引。添加、删除或修改列,或更改表分区方案的 alter table 命令有时也需要执行表复制操作。缺省情况下,上述所有命令都使 用扩充分配。

指定页的 reservepagegap 值,该值指示空白页与填充页的比率。例如, 如果指定 reservepagegap 值为 8,则使用扩充分配的操作将填充七页, 第八页将保留为空。

扩充分配操作不使用每个分配单元的第一页,因为此页用于存储分配 页。例如,如果对一个大表创建聚簇索引且不指定保留页间距,则每个 分配单元有七个未分配的空白页, 248 个已使用的页和一个分配页。 Adaptive Server 可以将这七个空白页用于行转移和插入表操作,这有助 于将带聚簇索引的转移行和插入保留在同一分配单元上。使用 reservepagegap 在每个分配单元上保留额外的空白页。

请参见 《Transact-SQL 用户指南》中的第 12 章 “创建表的索引”,了 解有关何时使用 reservepagegap 的信息。

3-1 说明使用 reservepagegap 16 对表创建聚簇索引后分配单元的外 观。不使用与分配单元共享第一个扩充的页,也不会将这些页分配给表。 279295 311 页是分配到表的扩充上的未使用的页。


image

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

288

290

291

291

293

294

295

296

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

.

..

504

505

506

507

508

509

510

511

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

288

290

291

291

293

294

295

296

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

.

..

504

505

506

507

508

509

510

511

3-1:创建聚簇索引后保留的页


image

分配页


对象使用的页


image

image

保留的页 未分配的页


image


使用 create table 指定保留页间距

以下 create table 命令指定 reservepagegap 的值为 16

create table more_titles ( title_id tid,

title varchar(80) not null,

type char(12),

pub_id char(4) null,

price money null,

advance money null, total_sales int null,

notes varchar(200) null,

pubdate datetime,

contract bit

)

lock datarows

with reservepagegap = 16

more_titles 表执行扩充分配的任何操作要为每 15 个填充页留出 1 个空 白页。在分区表中, reservepagegap 值适用于所有分区。

reservepagegap 的缺省值为 0,表示未保留空间。


使用 create index 指定保留页间距

以下命令将非聚簇索引页的 reservepagegap 指定为 10

create index type_price_ix on more_titles(type, price) with reservepagegap = 10

可使用创建索引的 alter table...constraint 选项 (primary key unique)指 定 reservepagegap 值。分区表中本地索引的 reservepagegap 值适用于所 有本地索引分区。

以下示例创建唯一约束:

alter table more_titles

add constraint uniq_id unique (title_id) with reservepagegap = 20


更改 reservepagegap

要将 titles 表的保留页间距更改为 20,请输入:

sp_chgattribute more_titles, "reservepagegap", 20

以下命令将索引 title_ix 的保留页间距设置为 10

sp_chgattribute "titles.title_ix", "reservepagegap", 10

sp_chgattribute 只改变系统表中的值;运行此过程不会使数据在数据页中 移动。改变表的 reservepagegap 会影响将来的存储,具体如下:

当数据被批量复制到表中时,保留页间距被应用到所有最新的分配 空间,但不影响现有页的存储。

复制表数据以创建新版表的任何命令都会在该操作的数据复制阶段 应用保留页间距。例如,使用 reorg rebuild alter table 更改表的锁定 或分区方案,或对需要复制数据的方案进行任何更改,二者均适用 于保留页间距。

当创建聚簇索引时,为表存储的保留页间距值将应用于数据页。


如下命令期间,对索引页应用保留页间距:

alter table...lock ,将重建索引。

当使用 alter table 更改表的锁定或分区方案,或更改任何需要复制数 据的方案时,在 reorg rebuild 期间的索引重建阶段。

create clustered index alter table 命令,它们在重建非聚簇索引时, 创建聚簇索引。


reservepagegap 示例

以下示例说明在运行 alter table reorg rebuild 命令期间如何应用

reservepagegap


仅为表指定的 reservepagegap

以下命令为表指定一个 reservepagegap,但不指定 create index 命令中 的值:

sp_chgattribute titles, "reservepagegap", 16

create clustered index title_ix on titles(title_id) create index type_price on titles(type, price)

3-8 显示运行 reorg rebuild 或删除并创建聚簇索引时应用的值。

3-8:有表级存储值时应用的 reservepagegap

image

image

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

create clustered index 或聚簇索引 重建 (由于 reorg rebuild

数据页和索引页:16 数据页:16

索引页:0 (填充扩充)

image

非聚簇索引重建 索引页:0 (填充扩充) 索引页:0 (填充扩充)

image


对于带聚簇索引的所有页锁定表, reservepagegap 对数据页和索引页均 适用。对于 DOL 锁定表, reservepagegap 适用于数据页,但不适用于聚 簇索引页。


为聚簇索引指定的 reservepagegap

如下命令为表和聚簇索引指定不同的 reservepagegap 值,并为非聚簇

type_price 索引指定一个值:

sp_chgattribute titles, "reservepagegap", 16 create clustered index title_ix on titles(title)

with reservepagegap = 20

create index type_price on titles(type, price) with reservepagegap = 24

3-9 显示此序列命令的作用。

3-9:应用于索引页的 reservepagegap

image

image

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

create clustered index 或聚簇索引重建

(由于 reorg rebuild

数据页和索引页:20 数据页:16 索引页:20

image

非聚簇索引重建 索引页:24 索引页:24

image


对于所有页锁定表,使用 create clustered index 指定的 reservepagegap 对 于数据页和索引页均适用。对于 DOL 锁定表,使用 create clustered index 指定的 reservepagegap 仅适用于索引页。如果表具有存储的 reservepagegap 值,此值适用于数据页。


reservepagegap 选择值

根据以下条件选择 reservepagegap 的值:

表是否有聚簇索引,

插入表的比率,

出现在表中的转移行的行数,以及

重新创建聚簇索引或运行 reorg rebuild 命令的频率。

正确配置 reservepagegap 后,可留出足够的页用于分配表和索引的新页, 以便在常规索引维护任务的时间间隔期间,表、聚簇索引和非聚簇叶级 页的集群比保持较高值。


监控 reservepagegap 设置

使用 optdiag 可以检查表的集群比和转移行的数目。集群比下降可能还表 明运行 reorg 命令可改善性能:

如果聚簇索引的数据页集群比很低,则运行 reorg rebuild 或删除并重 新创建聚簇索引。

如果索引页集群比很低,则删除并重新创建非聚簇索引。 要降低使用其运行 reorg 命令以保持集群比的频率,请在运行 reorg rebuild

前略微增加 reservepagegap

请参见 《性能和调优系列:利用统计分析改进性能》中的第 2 章 “统计 表和用 optdiag 显示统计信息”。


reservepagegap sorted_data 选项

按索引键顺序对已存储在数据页上的表创建聚簇索引时, sorted_data 选 项禁止为未分区表按键顺序复制数据页。可在 create clustered index 命令 中指定 reservepagegap 选项,以在表使用的扩充上留出空白页,为以后 的扩展留出空间。有规则确定哪一个选项生效。不能使用 sp_chgattribute 来更改 reservepagegap 值,且这两个选项的优势无法兼得。

如果使用 create clustered index 指定两个选项:

在未分区的所有页锁定表中,如果使用 create clustered index 指定的 reservepagegap 值与 sysindexes 中存储的值相匹配,则优先选择 sorted_data 选项。因为没有复制数据页,所以不应用 reservepagegap。 如果在 create clustered index 命令中指定的 reservepagegap 值与 sysindexes 中存储的值不同,将复制数据页,且在该命令中指定的 reservepagegap 值适用于这些复制的页。

DOL 锁定表中,使用 create clustered index 值指定的 reservepagegap

值仅适用于索引页。不复制数据页。

reservepagegap 外, create clustered index 的其它选项可能要求排序, 这会导致 sorted_data 选项被忽略。有关详细信息,请参见 95 页的 “对已排序的数据创建索引



image

所有页锁定表

特别要指出的是,以下注释与 reservepagegap 的使用有关:

在分区表中,需要复制数据页的任何 create clustered index 命令均执 行并行排序,然后按排序顺序复制数据页,当这些页复制到新扩充 时应用 reservepagegap 值。

只要 sorted_data 选项没有被其它 create clustered index 选项代替,将 扫描表以确定数据是否按键的顺序存储。索引在扫描期间建立,并 不执行排序。

3-10 显示这些规则如何应用。

3-10reservepagegap sorted_data 选项

image

image

分区表 未分区表

create index with sorted_data

image

和匹配的 reservepagegap

create index with sorted_data

和其它 reservepagegap


image

image

DOL 锁定表

create index with sorted_data

和任何 reservepagegap

不复制数据页;在扫描页时建立 索引。

执行并行排序,当页按排序顺序 存储在新位置时应用 reservepagegap


reservepagegap 仅适用于索引页; 不复制数据页。

不复制数据页;在扫描页时建立 索引。

复制数据页,在复制页时应用 reservepagegap 并建立索引;不执 行任何排序。


reservepagegap 仅适用于索引页; 不复制数据页。

image


匹配选项和目标


要重新分配表的数据页,为以后的扩展留出空间,请使用以下方法:

对于所有页锁定表,删除并重新创建聚簇索引,而不使用 sorted_data 选项。如果存储在 sysindexes 中的值不符合需要,请使用 create clustered index 指定所需的 reservepagegap

对于 DOL 锁定表,使用 sp_chgattribute 将表的 reservepagegap 设置 为所需的值,然后删除并重新创建聚簇索引,而不使用 sorted_data 选项。为表存储的 reservepagegap 应用于数据页。如果在 create clustered index 命令中指定 reservepagegap,则它只应用于索引页。

要创建聚簇索引而不复制数据页:

对于所有页锁定表,使用 sorted_data 选项指定 reservepagegap,而 不使用 create clustered index。或者,指定一个与 sysindexes 中存储的 值相匹配的值。

对于 DOL 锁定表,使用 sorted_data 选项。如果在 create clustered index 命令中指定 reservepagegap 值,则它只应用于索引页且不会引 起数据页复制。


要在执行批量复制操作、运行 select into 命令或另一个使用扩充分配的 命令之后使用 sorted_data 选项,请在复制数据之前为数据页设置所需的 reservepagegap 值,或在 select into 命令中加以指定。因为不需要复制数 据页,一旦数据页被分配并填充,以下命令只将 reservepagegap 应用到 索引页:

create clustered index title_ix on titles(title_id)

with sorted_data, reservepagegap = 32




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从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等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------