数据库服务器支持固定长度和可变长度字符数据的存储。固定长度列需要定义的字节数而不管实际的数据大小。CHAR 数据类型属于固定长度。例如,CHAR(25) 列对于所有值需要 25 字节的存储,因此字符串 "This is a text string" 使用 25 字节的存储。
可变长度列大小可为它的数据占据的字节数。NVARCHAR、VARCHAR 和 LVARCHAR 数据类型是可变长度字符数据类型。例如,VARCHAR(25) 列为列值最多保留 25 字节的存储,但字符串 "This is a text string" 仅使用保留的 25 字节中的 21 字节。VARCHAR 数据类型最多可存储 255 字节数据。要获取关于 IFX_PAD_VARCHAR 环境变量的信息,其设置控制数据库服务器发送和接收 VARCHAR 和 NVARCHAR 数据值的方式,请参阅 GBase 8s SQL 参考指南。
由于行大小的最大限制为 32,767 字节,因此不可以多于大约 195 可变长度或 ROW 类型列创建单个表。
对于带有多于一百万行的表,如果查询执行轻扫描,而不是缓冲池扫描,则使用全表扫描或跳跃扫描访问方法的查询更加高效。然而,在包括 NVARCHAR、VARCHAR 或 LVARCHAR 数据类型列,或其基础类型为可变长度列的 DISTINCT 数据类型的列的表上,不支持轻扫描,除非将 BATCHEDREAD_TABLE 配置参数(或 BATCHEDREAD_TABLE 会话环境选项)设置为 1。