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

 


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

使用公式估计对象大小

此处讨论的公式可帮助您估计数据库中表和索引的未来大小。包含可变 长度字段的表和索引中每一行的开销量比只包含固定长度字段的表中每 一行的开销量大,因此需要有两套公式。

这一过程包括计算每一行的数据和开销的字节数,然后用该数除以某数 据页上可用的字节数。每一页都需要一些开销,这就限制了数据可用的 字节数:

对于所有页锁定表,页开销为 32 字节,在 2K 字节的页上可留出

2016 字节供数据使用。

对于 DOL 锁定表,页开销为 46 字节,可留出 2002 字节供数据使用。

要进行最准确的估计,可用 round down 除法计算每页的行数 (不跨页 拆分行),用 round up 除法计算页数。


可影响存储大小的因素

使用空间管理属性可增加表或索引所需的空间。请参见 89 页的 “空 间管理属性的影响 90 页的 “ max_rows_per_page

如果表中包含 text image 数据类型或 Java 行外列,请在计算中使用 16 作为列的大小 (存储在行中的文本指针的大小)。然后参见 90 页的 “ LOB ,了解如何计算实际 text image 数据所需的存储空间。

受以下两个因素影响, DOL 锁定表上的索引数可能要比公式预测的少:

重复键只存储一次,继之以该键的行 ID 列表。

非叶级上的键压缩;仅存储足以区别于相邻键的键。这对于在使用 长字符键时减少大小特别有效。

如果配置参数 page utilization percent 设置为小于 100Adaptive Server 可 能会在填充已分配扩充上的所有页前分配新扩充。这样做不会改变对象 使用的页数,但会在分配给对象的扩充中留出空页。


数据类型的存储大小

数据类型的存储大小如 4-2 所示:


4-2Adaptive Server 数据类型的存储大小

image

数据类型 大小

image

char 定义的大小

image

nchar 定义的大小 * @@ncharsize

image

unichar n* @@unicharsize (@@unicharsize equals 2)

image

univarchar 实际字符数 * @@unicharsize

image

varchar 实际字符数

image

nvarchar 实际字符数 * @@ncharsize

image

binary 定义的大小

image

varbinary 数据大小

image

int 4

image

smallint 2

image

tinyint 1

image

float 4 8,取决于精度

image

double precision 8

image

real 4

image

numeric 2 - 17 ,取决于精度和标度

image

decimal 2 - 17 ,取决于精度和标度

image

money 8

image

smallmoney 4

image

datetime 8

image

smalldatetime 4

image

bit 1

image

text 16 字节 + 2K *使用的页数

image

image 16 字节 + 2K *使用的页数

image

timestamp 8

image


numeric decimal 列的存储大小取决于它的精度。 1 2 位数列的最小 存储要求为 2 个字节。精度每增加 2 位,存储大小增加 1 字节,最大可

达到 17 字节。

任何定义为 NULL 的列都被视为可变长度列,因为它们涉及与可变长度 列有关的开销。

下例中的所有计算都基于 varcharunivarcharnvarchar varbinary 数据 的最大大小 — 定义的列大小。同时假设列被定义为 “非空”。


公式中使用的表和索引

本例说明对一个有 9,000,000 行的表的计算:

固定长度列大小合计为 100 字节。

可变长度列大小合计为 50 字节;共有 2 个可变长度列。 该表有两个索引:

一个固定长度列上的聚簇索引,大小为 4 字节

一个包含以下列的组合非聚簇索引:

一个固定长度列,大小为 4 字节

一个可变长度列,大小为 20 字节

所有页锁定表和 DOL 锁定表需要使用不同的公式,因为它们的页及每 一行的开销量不同:

有关所有页锁定表使用的公式,请参见 78 页的 “为所有页锁定 表计算表及聚簇索引大小

有关 DOL 锁定表使用的公式,请参见 84 页的 “计算 DOL 锁定 表的大小


为所有页锁定表计算表及聚簇索引大小

所有页锁定表的公式和示例分为几套步骤在下面列出。 1 6 步概述了

有聚簇索引的所有页锁定表的计算,并提供了表大小和索引树大小。 7

12 步概述了对非聚簇索引所需空间的计算。所有的公式均使用可变 长度字段的最大大小。步骤如下:

1 79 页的 “计算数据行的大小”

2 80 页的 “计算数据页的数量”

3 80 页的 “计算聚簇索引行的行宽”

4 81 页的 “计算聚簇索引页的数目”

5 81 页的 “计算索引页总数”

6 81 页的 “计算分配开销和总页数”

7 82 页的 “计算叶索引行行宽”

8 83 页的 “计算索引中叶页的数量”

9 83 页的 “计算非叶行行宽”


10 83 页的 “计算非叶页页数”

11 84 页的 “计算非叶索引页的总数”

12 84 页的 “计算分配开销和总页数”

这些公式显示了计算表及聚簇索引大小的方法。如果表中没有聚簇索引, 可跳过第 34 5 步。在第 2 步中计算数据页页数时,跳至第 6 步与 OAM 页数相加。

optdiag 输出包括数据行和索引行的平均长度。如果想使用平均长度而不 使用最大长度,这些值可用于数据和索引行长度。


计算数据行的大小


存储可变长度数据的行比只存储有固定长度数据的行要求的开销更多, 因此计算数据行的行宽有两个不同的公式。


仅固定长度列


如果表只包含固定长度列,且都定义为 NOT NULL,请使用:

公式

4

(开销)

+

所有固定长度列的字节之和

= 数据行大小


某些可变长度列


如果表包含任何可变长度列或允许空值的列,请使用此公式。 由于示例中的表包含可变长度列,因此算式显示在右列。

公式

示例

4

(开销)

4

+

所有固定长度列的字节之和

+

100

+

所有可变长度列的字节之和

+

50

= 小计

154


+

(小计/ 256+ 1 (开销)

1

+

可变长度列的列数 + 1

3

+

2

(开销)

2

= 数据行大小

160


计算数据页的数量


公式

2016 /数据行行宽 = 每页数据行行数 行数/每页行数 = 所需数据页页数


示例

2016 / 160

=

每页 12 个数据行

9,000,000 / 12

=

750,000 个数据页


计算聚簇索引行的行宽

包含可变长度列的索引行比只包含固定长度值的索引行要求的开销更多。 如果所有键的长度固定,使用第一个公式。如果键包含可变长度列或允 许空值,则使用第二个公式。


仅固定长度列


示例中的聚簇索引只有固定长度键。

公式 示例

5 (开销) 5

+ 固定长度索引键字节之和 + 4

image

image

= 聚簇行行宽 9

某些可变长度列

5

(开销)

+

+

固定长度索引键字节之和 可变长度索引键字节之和

= 小计


+ (小计/ 256+ 1 (开销)

+ 可变长度列的列数 + 1

+ 2 (开销)

image

= 聚簇索引行行宽


除法运算 (小计/ 256)的结果向下舍入。


计算聚簇索引页的数目


公式

示例

2016 /聚簇行行宽) - 2

=

每页聚簇索引行行数

(2016 / 9) - 2

= 222

行数/每页聚簇索引行行数

=

下一级索引页页数

750,000 / 222

= 3379

如果 “下一级索引页页数”的结果大于 1,重复下面的除法步骤,将商 作为下一次的被除数,直到商等于 1 为止,则表明已到达索引的根级:

公式

上一级索引页页数 / 每页聚簇索引行行数 = 下一级索引页页数


示例

3379 / 222

=

16 个索引页 (级别 1

16 / 222

=

1 个索引页 (级别 2


计算索引页总数


将每级的页数相加,以确定索引中的总页数:

公式 示例

索引级 页 页 行

2 1 16

1 + + 16 3379

0 + + 3379 750000

image

image

索引页总数 3396


计算分配开销和总页数

每个表和表中的每个索引都有一个对象分配映射 (OAM)。单个 OAM 页 可容纳 2,000 63,750 个数据页或索引页的分配映射。在绝大多数情况 下,所需的 OAM 页数接近最小值。要计算表的 OAM 页数,应使用:

公式

示例

保留的数据页数/ 63,750

=

最少 OAM 页数

750,000 / 63,750

=

12

保留的数据页数/ 2000

=

最多 OAM 页数

750,000 / 2000

=

376

要计算索引的 OAM 页数,应使用:


公式

示例

保留的索引页页数/ 63,750

=

最少 OAM 页数

3396/ 63,750

= 1

保留的索引页页数/ 2000

=

最多 OAM 页数

3396 / 2000

= 2


所需总页数


最后,将 OAM 页数与之前的总计值相加,以确定所需的总页数:

公式 示例


聚簇索引页

最小

最大值

最小

3396

最大值

3396

OAM

+

+

1

2

数据页

+

+

750000

750000

OAM

+

+

12

376

总计

753409

753773


计算叶索引行行宽


包含可变长度列的索引行比只包含固定长度值的索引行要求的开销更多。


仅固定长度键


如果索引只包含固定长度键,且都定义为 NOT NULL,请使用:

公式

7 (开销)

+ 固定长度键之和

image

= 叶索引行行宽


某些可变长度键


如果索引包含任何可变长度键或定义为 NULL 的列,请使用:

公式 示例

9 (开销) 9

+ 固定长度键的长度之和 + 4

+ 可变长度键的长度之和 + 20

+ 可变长度键数 + 1 + 2

image

image

= 小计 35

+ (小计/ 256+ 1 (开销) + 1

image

image

= 叶索引行行宽 36

计算索引中叶页的数量

公式 示例

2016 /叶行行宽) = 每页叶索引行行数 2016 / 36 = 56

表的行数/每页叶行行数 = 下一级索引页页数 9,000,000 / 56 = 160,715

计算非叶行行宽


公式 示例

叶索引行行宽 36

+ 4 开销 + 4

image

image

= 非叶行行宽 40


计算非叶页页数


公式

示例

2016 /非叶行行宽) - 2

=

每页非叶索引行行数

(2016 / 40) - 2 = 48

如果第 8 步中的叶页页数大于 1,请重复下面的除法步骤,将商作为下 一次的被除数,直到商等于 1 为止,则表明已到达索引的根级:

公式

上一级索引页页数 / 每页非叶索引行行数 = 下一级索引页页数


示例

160715 / 48 = 3349 索引页,级别 1

3349 / 48 = 70 索引页,级别 2

70 / 48 = 2 索引页,级别 3

2 / 48 = 1 索引页,级别 4 (根级)


计算非叶索引页的总数

将每级的页数相加,以确定索引中的总页数:


索引级

4

1

2

3

+

+

2

70

2

+

+

70

3348

1

+

+

3349

160715

0

+

+

160715

9000000

使用的 2K 数据页总数

164137


计算分配开销和总页数


公式

示例

索引页页数/ 63,750

=

最少 OAM 页数

164137 / 63,750

=

3

索引页页数/ 2000

=

最多 OAM 页数

164137 / 2000

=

83

所需总页数 OAM 页数与第 11 步的总计值相加,以确定索引页的总页数:


公式

示例

最小

最大值

最小

最大值

非聚簇索引页

164137

164137

OAM

+

+

3

83

总计

164140

164220


计算 DOL 锁定表的大小

下面的公式和示例显示如何计算表和索引的大小。以下示例使用与前一 个示例相同的列大小和索引。所有的公式均使用可变长度字段的最大大 小。有关说明,请参见 78 页的 “公式中使用的表和索引

DOL 锁定表的公式分为两套步骤:

步骤 1 3 概述 DOL 锁定表的计算。紧接步骤 3 的示例说明对一个 有 9,000,000 行的表的计算。

步骤 4 8 概述索引所需的空间计算,紧接的示例使用了有

9,000,000 个行的表。

optdiag 输出包括数据行和索引行的平均长度。如果想使用平均长度而不 使用最大长度,这些值可用于数据和索引行长度。


步骤如下:

1 85 页的 “计算数据行的大小”

2 86 页的 “计算数据页的数量”

3 86 页的 “计算分配开销和总页数”

4 86 页的 “计算索引行行宽”

5 87 页的 “计算索引中叶页的数量”

6 87 页的 “计算索引中非叶页的数量”

7 88 页的 “计算非叶索引页的总数”

8 88 页的 “计算分配开销和总页数”


计算数据行的大小


存储可变长度数据的行比只存储有固定长度数据的行要求的开销更多, 因此计算数据行的行宽有两个不同的公式。


仅固定长度列


某些可变长度列


如果表只包含定义为 NOT NULL 的固定长度列,请使用:

6 (开销)

image

+ 所有固定长度列的字节之和 数据行大小


image

注释 DOL 锁定表必须为每个行留有空间才能存储 6 字节的转移行 ID。如 果 DOL 锁定表的行不足 10 字节,在插入每行后会将该行填充为 10 字节。 这种改变只影响数据页,而不会影响索引,也不会影响所有页锁定表。

image


如果表包含可变长度列或允许空值的列,请使用:

公式 示例

8

(开销)

8

+

所有固定长度列的字节之和

+

100

+

所有可变长度列的字节之和

+

50

+

可变长度列列数* 2

+

4

数据行大小

162


计算数据页的数量


公式

2002 /数据行行宽 = 每页数据行行数 行数/每页行数 = 所需数据页页数


在此步骤的开始部分,每页的行数向下舍入:

示例

2002 / 162

=

每页 12 个数据行

9,000,000 / 12

=

750,000 个数据页


计算分配开销和总页数


分配开销


每个表和表中的每个索引都有一个对象分配映射 (OAM)OAM 存储在 分配给表或索引的页上。单个 OAM 页可容纳 2,000 63,750 个数据页 或索引页的分配映射。在绝大多数情况下,所需的 OAM 页数接近最小 值。要计算表的 OAM 页数,应使用:

公式 示例

保留的数据页数/ 63,750 = 最少 OAM 页数 750,000 / 63,750 = 12

保留的数据页数/ 2000 = 最多 OAM 页数 750,000 / 2000 = 375

所需总页数

OAM 页数与之前的总计值相加,以确定所需的总页数:

公式 示例


计算索引行行宽

最小

最大值

最小

最大值

数据页

+

+

750000

750000

OAM

+

+

12

375

总计

750012

750375


对于 DOL 锁定表的聚簇索引和非聚簇索引,应使用这些公式。 包含可变长度列的索引行比只包含固定长度值的索引行要求的开销更多。


仅固定长度键


如果索引只包含定义为 NOT NULL 的固定长度键,请使用:

9 (开销)

image

+ 固定长度键之和 索引行行宽


某些可变长度键


如果索引包含任何可变长度键或允许空值的列,请使用:


公式


9


(开销)

示例


9

+

固定长度键的长度之和

+

4

+

可变长度键的长度之和

+

20

+

可变长度键的数目* 2

+

2

索引行行宽

35


计算索引中叶页的数量


公式

2002 /索引行行宽 = 每页的行数 表中行数/每页行数 = 叶页页数


示例

2002 / 35 = 57 (每页非聚簇索引行行数)

9,000,000 / 57 = 157,895 个叶页


计算索引中非叶页的数量


公式

叶页页数 / 每页索引行行数 = 下一级页数


如果上面的下一级索引页页数大于 1,重复下面的除法步骤,将商作为 下一次的被除数,直到商等于 1 为止,则表明已到达索引的根级:

公式

上一级索引页页数 / 每页非叶索引行行数 = 下一级索引页页数


示例

157895/57 = 2771

2770 / 57 = 49

索引页,级别 1

索引页,级别 2

48 / 57 =1

索引页,级别 3


计算非叶索引页的总数

将每级的页数相加,以确定索引中的总页数:


公式

索引级


示例


3

1

49

2

+

49

2771

1

+

2771

157895

0

+

157895

9000000

使用的 2K 页总数

160716


计算分配开销和总页数


公式

索引页页数/ 63,750 = 最小 OAM 页数 索引页页数/ 2000 = 最多 OAM 页数


示例

160713 / 63,750 = 3 (最小值)

160713 / 2000 = 81 (最大值)


所需总页数


OAM 页数与第 8 步的总计值相加,以确定索引页的总页数:

公式 示例

最小

最大值

最小

最大值

非聚簇索引页

160716

160716

OAM

+

+

3

81

总计

160719

160797


影响对象大小的其它因素

除随时间推移数据修改施加的影响外,其它可影响对象大小和大小估计 的因素有:

空间管理属性

计算使用的是平均行宽还是最大行宽

文本行非常短

使用 text image 数据


空间管理属性的影响


fillfactorexp_row_sizereservepagegap max_rows_per_page 的值可影 响对象的大小。


填充因子


创建索引时,应用为 create index 指定的 fillfactor。向表执行插入操作期间 并不维护 fillfactor。如果已使用 sp_chgattribute 为索引存储了 fillfactor,在 用 alter table 命令和 reorg rebuild 重新创建索引时应使用这个值。 fillfactor 的主要功能是在索引页上留出空间,以减少页面拆分。fillfactor 值如果非 常小则可能导致表或索引所需的存储空间显著增大。

请参见 47 页的 “减少索引维护 ,了解有关设置 fillfactor 值的详细 信息。


exp_row_size


设置表的预期行宽可增加所需的存储空间。如果表中有许多行的行宽比 预期的行宽短,设置此值并运行 reorg rebuild 或更改锁定方案可增加表所 需的存储空间。但之前使用 max_rows_per_page 的表的空间使用情况应 大致保持不变。

请参见 53 页的 “减少行转移 ,了解有关设置 exp_row_size 值的详细 信息。


reservepagegap


为表或索引设置 reservepagegap 会于执行扩充分配命令时在分配给对象 的扩充上留下空页。将 reservepagegap 设置为小值将增加空页的数目, 并将数据扩展到更多的扩充上,因此在诸如 create index reorg rebuild 的命令刚执行完时,所需的额外空间最大。行转移和向表中插入将填充 这些保留页。

请参见 58 页的 “为已转移行和插入留出空间


max_rows_per_page


max_rows_per_page 值 (由 create indexcreate tablealter table

sp_chgattribute 指定)会限制数据页上的行数。

要想在使用 max_rows_per_page 时计算出正确的值,应使用 max_rows_per_page 值,或使用在 80 页的 “计算数据页的数量” 83 页的 “计算索引中叶页的数量”中计算出的每页的数据行行数, 以较小者为准。

请参见 66 页的 “在所有页锁定表上使用 max_rows_per_page


很短的行


对于所有页锁定表, Adaptive Server 无法在页上存储 256 个以上的数据 行或索引行。即使行极短,数据页的最少页数也为:

行数/ 256 = 所需数据页页数


LOB


每个 text image Java 行外列可在数据类型为 varbinary(16) 的数据行 中存储一个 16 字节的指针。已初始化的每列需要至少 2K(一个数据页) 的存储空间。

列存储隐式空值,即数据行中的文本指针仍为 NULL,且没有为该值初 始化文本页,从而节约了 2K 的存储空间。

如果某一 LOB 列定义为允许空值,且该行是用包括该列的 NULL

insert 语句创建的,则不会初始化该列,也不会分配存储空间。

如果用 update LOB 列进行了任何更改,则分配文本页。向列中放置实 际数据的插入或更新操作会初始化该页。如果随后将该列设置为 NULL, 则单个页将保持已分配状态。

每个 LOB 页大约可存储 1800 个字节的数据。要估计一个特定条目将使 用的页数,应使用此公式:

数据长度/ 1800 = 2K 页页数


在任何情况下,结果都应向上舍入;即 1801 字节的数据长度需要两个

2K 的页。


由于一些 LOB 页为列中其它页链存储指针信息,数据所需空间的总计 值可能会比计算出的值稍大。在访问 LOB 列时,Adaptive Server 利用此 指针信息进行随机访问和预取数据。存储指针信息所需的额外空间取决 于存储在列中的数据的大小总计值和数据类型。使用 4- 3 估计为 LOB 列中的数据存储指针信息所需的额外页数。

4-3:估计的存储 LOB 列中指针信息所需的额外页数

image

数据大小和类型 存储指针信息所需的额外页数

image

400K image 0 1

image

700K image 0 2

image

5MB image 1 11

image

400K 多字节 text 1 2

image

700K 多字节 text 1 3

image

5MB 多字节 text 2 22

image


使用公式估计对象大小的优点

使用公式的优点有:

可了解数据和索引存储内部的更多细节。

使用公式可灵活地为字符或二进制列指定平均大小。

在计算索引大小时,可了解每个索引的级数,这样有助于估计性能。


使用公式估计对象大小的缺点

使用公式的缺点有:

估计的精度只能达到对可变长度列的平均大小的估计精度。

多步计算很繁琐,遗漏步骤可能会导致错误。

对象的实际大小可能与计算的值不同,具体取决于使用情况。




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