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

 


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

索引覆盖


当查询所需的所有列均包含在索引中时,索引覆盖可极大地改善性能。 可创建关于多个键的索引。这称为组合索引。组合索引最多可有 31 列,

累计不超过 600 字节。

对于在查询的 select 列表以及任何 wherehavinggroup by order by 子 句中引用的每一列,如果创建一个关于它的组合非聚簇索引,则只需访 问索引即可满足查询条件。

由于 DOL 锁定表的非聚簇索引或聚簇索引的叶级包含表中每行的键值, 所以对只访问键值的查询可通过使用非聚簇索引的叶级检索信息进行, 如同使用实际表数据一样。这称为索引覆盖。

匹配和不匹配的索引扫描都可能会使用包含查询的索引。

对于这两种类型的覆盖查询,索引键必须包含在查询中指定的所有列。 匹配扫描还有其它要求。

118 页的 “选择组合索引”说明了那些充分利用了覆盖索引的查询 类型。


覆盖匹配索引扫描


包含匹配的索引扫描能让您跳过由查询及对数据页所进行的读取所返回 的每行最后读取内容。

对于仅返回单行的点查询,查询的性能增益很小,仅少读取一页。

对于范围查询,由于覆盖索引对查询返回的每一行都保存了一个读取, 因此性能增益较大。

对于要使用的覆盖匹配索引扫描,该索引必须包含在查询中指定的所有 列。另外,查询的 where 子句中的列必须包括索引中各列的前导列。

例如,对于一个关于 ABC D 列的索引,下列设置可执行匹配扫 描:AABABCACACDABDAD ABCD。列 BBCBCDBDCCD D 不包括前导列,只能用于非匹配扫描。

当进行匹配索引扫描时, Adaptive Server 使用标准索引访问方法,由索 引的根转移到包含第一行的非聚簇叶页。

5-11 中,关于 lnamefname 的非聚簇索引包含该查询。由于 where 子句包含了前导列,并且 select 列表中的所有列都包括在索引中,因此 不需要访问数据页。



image

1649

14

Hunter

15

Smith

16

Ringer

17

Greane

1649

14

Hunter

15

Smith

16

Ringer

17

Greane

1561

Greane,Grey

1307,4

Greco,Del

1409,4

Green,Rita

1421,2

Greene,Cindy

1703,2

1561

Greane,Grey

1307,4

Greco,Del

1409,4

Green,Rita

1421,2

Greene,Cindy

1703,2

RowID

RowID

指针

指针

select fname, lname from employees where lname = "Greene"

1647

10

O’Leary

11

Ringer

12

White

13

Jenkins

1647

10

O’Leary

11

Ringer

12

White

13

Jenkins

1560

Bennet,Sam

1580,1

Chan,Sandra

1129,3

Dull,Normal

1409,1

Edwards,Linda

1018,5

1560

Bennet,Sam

1580,1

Chan,Sandra

1129,3

Dull,Normal

1409,1

Edwards,Linda

1018,5

指针

指针

5-11:匹配索引访问并非一定要读取数据行


1544

Bennet,Sam

1580,1

1560

Greane,Grey

Hunter,Hugh

1649,4

1649,1

1561

1843


1843

Hunter,Hugh

Jenkins,Ray

1307,1

1242,4


根页 中间 叶页

1580

18

20

Bennet

Yokomoto

1580

18

20

Bennet

Yokomoto

1703

21

Dull

22

Greene

23

White

24

Greco

1703

21

Dull

22

Greene

23

White

24

Greco

数据页


覆盖非匹配索引扫描

如果在 where 子句中指定的列不包括索引中的前导列,但在选择列表和其 它查询子句 (例如 group by having)中指定的所有列包括在索引中时, Adaptive Server 通过扫描索引的整个叶级而不是通过扫描表来保存 I/O

由于未指定索引的第一列,因此它无法执行匹配扫描。

5-12 中的查询显示了一个非匹配索引扫描。此查询不使用索引的前导 列,但查询中所需的所有列均在 lnamefnameemp_id 的非聚簇索引中。

非匹配扫描必须检查叶级上所有的行。它由第一页开始,扫描所有叶级 索引页。因为无法知道有多少行可能与查询条件匹配,所以它必须检查 索引中的每一行。由于必须从叶级的第一页开始,因此它可以在 syspartitions.firstpage 中使用指针而不用降序该索引。


5-12:一个非匹配索引扫描


1647

10

O’Leary

11

Ringer

12

White

13

Jenkins

1647

10

O’Leary

11

Ringer

12

White

13

Jenkins

1560

Bennet,Sam,409...

1580,1

Chan,Sandra,817...

1129,3

Dull,Normal,415...

1409,1

Edwards,Linda,238...

1018,5

1560

Bennet,Sam,409...

1580,1

Chan,Sandra,817...

1129,3

Dull,Normal,415...

1409,1

Edwards,Linda,238...

1018,5

指针

指针

select lname, emp_id from employees where fname = "Rita"


image

1649

14

Hunter

15

Smith

16

Ringer

17

Greane

1649

14

Hunter

15

Smith

16

Ringer

17

Greane

1561

Greane,Grey,486...

Greco,Del,672... Green,Rita,398...

1307,4

1409,4

1421,2

Greene,Cindy,127...

1703,2

1561

Greane,Grey,486...

Greco,Del,672... Green,Rita,398...

1307,4

1409,4

1421,2

Greene,Cindy,127...

1703,2

RowID

RowID

指针

指针

sysindexes.firstpage


1544

Bennet,Sam,409...

1580,1

1560

Greane,Grey,486...

1649,4

1561

Hunter,Hugh,457...

1649,1

1843


1843

Hunter,Hugh,457...

Jenkins,Ray,723...

1307,1

1242,4


根页 中间 叶页

1580

18

20

Bennet

Yokomoto

1580

18

20

Bennet

Yokomoto

1703

21

Dull

22

Greene

23

White

24

Greco

1703

21

Dull

22

Greene

23

White

24

Greco

数据页




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