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

 


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

索引管理


报告索引管理活动,包括非聚簇维护、页面拆分和索引收缩。


样本输出

Index Management

----------------


Nonclustered Maintenance

-----------------------

Ins/Upd Requiring Maint

per sec

------------

1996.3

per xact

------------

25.3

count

----------

1778674

% of total

----------

n/a

# of NC Ndx Maint

694.9

8.8

619122

n/a

Avg NC Ndx Maint / Op

n/a

n/a

0.34808

n/a

Deletes Requiring Maint

1922.5

24.3

1712946

n/a

# of NC Ndx Maint

621.1

7.9

553387

n/a

Avg NC Ndx Maint / Op

n/a

n/a

0.32306

n/a

RID Upd from Clust Split

0.0

0.0

0

n/a

# of NC Ndx Maint

0.0

0.0

0

n/a

Upd/Del DOL Req Maint

9.0

0.1

7989

n/a

# of DOL Ndx Maint

9.2

0.1

8238

n/a

Avg DOL Ndx Maint / Op

n/a

n/a

1.03117

n/a

Page Splits

11.7

0.1

10452

n/a

Retries

0.0

0.0

0

0.0 %

Deadlocks

0.0

0.0

0

0.0 %

Add Index Level

0.0

0.0

0

0.0 %

Page Shrinks Deadlocks

Deadlock Retries Exceeded

0.1

% 0.0

0.0


0.0

124


0

n/a


0.0 %

Index Scans

per sec

per xact

count

% of total


Ascending Scans

69751.6

883.1

62148709

29.3

%

DOL Ascending Scans

168653.5

2135.3

150270303

70.7

%

Descending Scans

8.8

0.1

7884

0.0

%

DOL Descending Scans

23.9

0.3

21271

0.0

%

-----------

-----------

---------

otal Scans 238437.9 3018.8 212448167

Ascending Scans

69751.6

883.1

62148709

29.3

%

DOL Ascending Scans

168653.5

2135.3

150270303

70.7

%

Descending Scans

8.8

0.1

7884

0.0

%

DOL Descending Scans

23.9

0.3

21271

0.0

%

-----------

-----------

---------

otal Scans 238437.9 3018.8 212448167

----------------------- ------------ ----------- -------- ----------


T


Nonclustered Maintenance

本类别报告对一个或多个索引需要的或可能需要的维护操作次数;也就 是说,它报告 Adaptive Server 必须检查以确定是否有必要更新索引的操 作数。输出也给出已更新的索引数和每次操作维护的平均索引数。

在带聚簇索引和一个或多个非聚簇索引的表中,所有插入、所有删除、某 些更新操作和任何数据页面拆分都需要对非聚簇索引进行更改。高索引 维护值表明您应该评估维护索引对 Adaptive Server 性能的影响。在索引 加速数据检索的同时,维护索引也会减慢数据修改的速度。维护时需要 索引页的其它进程、其它 I/O 和其它锁定。

与评估非聚簇索引相关的其它 sp_sysmon 输出有:

有关更新、插入和删除的总次数的信息,以及页面拆分的数量和类 型的信息。请参见 62 页的 “ Transaction Detail 79 页的 “ Page Splits

有关锁争用的信息。请参见 92 页的 “ Lock Detail

有关地址锁争用的信息。请参见 45 页的 “ Address Lock Contention 93 页的 “ Exclusive Address Shared Address

例如,您可将发生的插入次数与导致的维护操作次数进行比较。如果发 生的维护操作、页面拆分和重试的次数较高,则应考虑应用程序中索引 是否有用。

有关详细信息,请参见 Performance and Tuning Series: Locking and Concurrency Control (《性能和调优系列:锁定和并发控制》)中的 第 5 章 “Indexes”(索引)。


Ins/Upd Requiring Maint

本部分中的数据提供了有关插入和更新操作如何影响所有页锁定表中的 索引的信息。例如,在拥有三个非聚簇索引的表中,一个插入要求更新 所有三个索引,因此导致对非聚簇索引进行维护的平均操作次数是三次。

但是,对同一表进行更新可能只要求进行一次维护操作 — 对其键值已经 更改的索引进行。

• Ins/Upd Requiring Maint — 报告对具有索引的表进行插入和更新操作 的次数,这些操作可能会要求对一个或多个索引进行修改。

• # of NC Ndx Maint — 报告因插入和更新操作而需要维护的非聚簇索 引的数目。

• Avg NC Ndx Maint/Op — 报告要求维护的每个插入或更新操作的非聚 簇索引的平均数。

对于 DOL 锁定表,在 “Ins/Upd Requiring Maint”中报告插入数,在 “Upd/Del DOL Req Maint”中报告删除数和插入数。


Deletes Requiring Maintenance

本部分中的数据提供了有关删除操作如何影响所有页锁定表的索引的 信息:

• Deletes Requiring Maint — 报告可能要求对一个或多个索引进行修改 的删除操作数。

• # of NC Ndx Maint — 报告因删除操作而要求维护的非聚簇索引数。

• Avg NC Ndx Maint/Op — 报告每个删除操作的要求维护的非聚簇索引 的平均数。

请参见 65 页的 “ Deletes


RID Upd from Clust Split

报告在带聚簇索引的所有页锁定表中,由页面拆分引起的索引维护活动。 这些拆分要求为移动到新数据页的所有行更新非聚簇索引。

• RID Upd from Clust Split — 报告需要维护非聚簇索引的页面拆分总数。

• # of NC Ndx Maint — 报告因行 ID 更新操作而要求维护的非聚簇行数。

• Avg NC Ndx Maint/Op — 报告为每个页面拆分更新的非聚簇索引条目 的平均数。


Upd/Del DOL Req Maint

本部分中的数据提供有关更新和删除操作如何影响 DOL 锁定表的索引的 信息:

Upd/Del DOL Req Maint”报告可能要求对一个或多个索引进行修改 的更新和删除操作的数目。

# of DOL Ndx Main”报告因更新或删除操作而要求维护的索引数。

Avg DOL Ndx Maint/Op”报告每个更新或删除操作的要求维护的索 引平均数。


Page Splits


数据页、聚簇索引页或非聚簇索引页因为空间不足容纳不下新行而进行 的页面拆分数。

当一个数据行插入到拥有聚簇索引的所有页锁定表中时,此行必须根据 键值按物理顺序放置。索引行也必须按物理顺序放置在此页中。如果在 一页中没有足够的空间容纳一个新行,则Adaptive Server拆分此页,分配 一个新页并将某些行移动到新页中。页面拆分会产生开销,因为它会更 新父索引页和相邻页上的页指针以及添加锁争用。对于聚簇索引,页面 拆分还会更新指向新页上的行的所有非聚簇索引。

有关详细信息,请参见 Performance and Tuning Series: Locking and Concurrency Control (《性能和调优系列:锁定和并发控制》)中的 第 5 章 “Indexes”(索引)。


减少页面拆分以进行升序键插入

如果 “Page Splits”较高而您的应用程序正在将值插入到在复合键上带有 聚簇索引的所有页锁定表中,则或许可以通过特殊优化操作 (更改这些 索引的页面拆分点)来减少页面拆分数。

特殊优化操作旨在减少页面拆分并导致更完整地填充数据页。它只影响 带有复合键的聚簇索引,这里第一个键已经在表中使用,第二列基于增 加的值。


缺省数据页面拆分


sales 中的 store_id customer_id 上具有聚簇索引。有三个商店(AB C)。每个商店都按数值的升序添加客户记录。表包含键值为 A,1A,2A,3B,1B,2C,1C,2 C,3 的行,且每页都有四行,如 2-2 所示。


1009

B

2

...

C

1

...

C

2

...

C

3

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

2-2:插入前的聚簇表


1007

A

1

...

A

2

...

A

3

...

B

1

...


使用常规页面拆分机制时,如果插入 “A,4 ”,将分配新页,并且会将 一半的行移动到新页,再将新行插入到相应位置,如 2-3 所示。

1129

A A B

3

4

1

...

...

...

1129

A A B

3

4

1

...

...

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

2-3:插入操作引起页面拆分


1007

A A

1

2

...

...


插入 “A,5”时,不需要拆分,但插入 “A,6 ”时会进行另一次拆分,如 2-4 所示。

1129

A A

3

4

...

...

1129

A A

3

4

...

...

1134

A A B

5

6

1

...

...

...

1134

A A B

5

6

1

...

...

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

2-4:另一次插入引起另一次页面拆分


1007

A A

1

2

...

...


添加 “A,7”和 “A,8 ”会导致另一次页面拆分,如 2-5 所示。

1129

A A

3

4

...

...

1129

A A

3

4

...

...

1134

A A

5

6

...

...

1134

A A

5

6

...

...

1137

A A B

7

8

1

...

...

...

1137

A A B

7

8

1

...

...

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

2-5:页面拆分继续


1007

A A

1

2

...

...


有关数据页面拆分的详细信息,请参见 《性能和调优:基础知识》中的 第 12 章 “索引的工作原理”。


升序插入的影响


您可以对表设置升序插入模式,以便页面可在插入行处拆分,而不是在 页面中间拆分。从 80 页的图 2-2 中显示的原始表开始,插入 “ A,4 ” 会导致在插入点处拆分,且此页中的其余行会移动到新分配的页中,如 2-6 所示。

1129

B

1

...

1129

B

1

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

2-6:采用升序插入模式的第一次插入


1007

A

1

...

A

2

...

A

3

...

A

4

...


插入 “A,5 ”会导致分配新页,如 2-7 所示。

1134

A

5

...

1134

A

5

...

1129

B

1

...

1129

B

1

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

2-7:其它升序插入引起页面分配


1007

A

1

...

A

2

...

A

3

...

A

4

...


添加 “A,6”、“A,7”和 “A,8 ”会填充新页,如 2 -8 所示。

1134

A

5

...

A

6

...

A

7

...

A

8

...

1134

A

5

...

A

6

...

A

7

...

A

8

...

1129

B

1

...

1129

B

1

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

1009

B

2

...

C

1

...

C

2

...

C

3

...

2-8:其它插入填充新页


1007

A

1

...

A

2

...

A

3

...

A

4

...


设置表的升序插入模式

若要为 sales 表打开升序插入模式,请使用:

dbcc tune (ascinserts, 1, "sales")


若要关闭升序插入模式,请使用:

dbcc tune (ascinserts, 0, "sales")

这些命令会更新 sysindexes status2 位。

如果表有时会遇到随机插入且批处理作业期间的顺序插入较多,则应只 在批处理作业运行期间启用 dbcc tune (ascinserts)


Retries Deadlocks

导致死锁的索引页面拆分及收缩的数目。 Adaptive Server 具有名为 deadlock retries 的机制,该机制可尝试避免由索引页死锁引起的事务回 退。“Retries”报告 Adaptive Server 使用此机制的次数。

当两个事务中的每一个事务需要获得由另一个事务持有的锁时,会发生 索引页的死锁。在数据页中,死锁会导致选择一个进程 (CPU 累计时间 最少的进程)作为死锁对象并回退此进程。

截止到发生索引死锁时,事务已经更新数据页并持有数据页锁,因此回 退此事务将会导致开销。

在由页面拆分和收缩引起的绝大多数索引死锁中,两个事务都可通过删 除一组索引锁并重新启动索引扫描而获得成功。用于其中一个进程的索 引锁被释放 (仍持有数据页中的锁), Adaptive Server再次尝试索引扫 描,遍历索引根页中的索引。

通常情况下,在扫描到达需要拆分的索引页时,其它事务已经完成,将 不会发生任何死锁。缺省情况下,在认为事务已死锁并回退前,任何因 页面拆分或收缩引起的索引死锁最多重试五次。

有关使用 sp_configure “deadlock retries” 更改死锁重试次数缺省值的信息, 请参见 《系统管理指南,卷 1》中的第 5 章 “设置配置参数”。

死锁重试机制使持有数据页锁的时间比常规情况下略长,并增加锁定和 开销。但是,该机制可减少由于死锁造成回退的事务数量。缺省设置对 下列两种情况提供合理的折衷:持有数据页锁时间较长的开销和回退必 须重新发出事务的开销。

大量的索引死锁和死锁重试说明在索引 B 树的小区域内争用很激烈。 如果您的应用程序遇到大量的死锁重试,请在重新创建此索引时使用

fillfactor 减少页面拆分。

有关详细信息,请参见 Performance and Tuning Series: Locking and Concurrency Control (《性能和调优系列:锁定和并发控制》)中的 第 5 章 “Indexes”(索引)。


Add Index Level


添加新索引级的次数。这种情况并不频繁发生,因此大多数情况下都应 该看到结果值为 0。如果您的样本包括对一个空表或带有索引的小表的 插入操作,计数值可能为 1 2


Page Shrinks


删除索引行引起索引收缩页的次数。收缩需要开销,因为需要在索引中 锁定,同时还需要在相邻页中更新指针。大于 0 的重复 “count”值表示 索引中可能有许多页,但由于删除和更新操作导致每页中的行数相当少。 如果存在大量的收缩,请考虑重建索引。


Index Scans


报告按锁定方案进行的正向和反向扫描:

• Ascending Scans — 报告对所有页锁定表的正向扫描数。

• DOL Ascending Scans — 报告对 DOL 锁定表进行的正向扫描数。

• Descending Scans — 报告对所有页锁定表进行的反向扫描数。

• DOL Descending Scans — 报告对 DOL 锁定表进行的反向扫描数。

有关正向和反向扫描的详细信息,请参见 Performance and Tuning Series: Locking and Concurrency Control (《性能和调优系列:锁定和并发控制》) 中的 “Indexes”(索引)。




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