工作流程系统数据库大小限制
工作流程系统数据库软件会对您可以在工作流程字段中存储的数据量设置限制。这些限制既特定于字段,又针对记录进行累积。
下表描述了由特定版本的 Microsoft SQL Server、Oracle 和 DB2® 设置的限制。
数据类型字符串的每个字段的字符数* | 每个数据库行(记录)的数据的字节数 | 每个数据库表的最大列数† | |
---|---|---|---|
Microsoft SQL Server 2012 | 4000(数据类型 nvarchar) | 8060 | 1024 |
Oracle 11g | 每列 4000* 个字节 | 未定义限制 | 1000 |
DB2 | 16,336 个 vargraphic 双字节字符 您不能定义其中包含的字节数超过行大小的 DB2 表。 |
变量 行大小由所定义的表空间页大小确定。如果页大小为 32K,那么行大小为 32,677 |
1012 |
* 工作流程系统使用基于字符的字符串。如果您使用多字节字符集(例如,AL32UTF8),那么表中列示的最大字节数不一定等同于最大字符数。要确定字符串中接近于最大多字节字符数,就要查找每个字符的平均字节数,该字节数取决于您的数据库中所使用的语言。这样,根据每个字符的平均字节数划分每列 (4000) 的最大字节数。例如,对于每个字符的 3 个字节的平均数:4000/3 或近似于 1333。
† 每个数据库表的最大列数包括每个工作流程登记簿、队列和事件日志必需的工作流程系统字段。
†† 当配置对象或工作项的 BLOB 大小超过所定义的最大大小的 95% 时,工作流程系统会在系统事件日志中记录一条警告消息。
工作流程系统对 BLOB 施加 1 MB 的额外限制。对于大多数应用程序,此大小就足够了。下列情况会增加存储在 BLOB 中的数据量:
- 有大量的工作空间。大量的工作空间是将同一工作流程定义的许多不同版本传输至一个隔离式区域中的工作流程系统所导致的结果。
- 工作流程主图中有大量步骤。通过将工作流程分解到子图中即可避免发生这种情况。
- 有大量的数据字段。
- 有非常大的字符串数据字段。
对于 BLOB 列,数据并不存储在行中,而是存储在数据库的另一个区域。只有数据的地址存储在行中。此地址并不会显著影响可以存储在行中的实际数据的最大数量。因此,未公开的数据字段的大小(以及总的行大小)可以大于建议的限制大小。