返回首页

gbase数据、南大通用产品文档:GBase8s高效的文件空间和磁盘管理

更新日期:2024年09月11日

GBase 8s 通过建立多个磁盘I/O 线程模拟异步的磁盘I/O 来构建和读写数
据库文件,并且I/O 线程的数目是可配置的,它和后面提到的工作者线程是被
分开管理的,并且专用于磁盘I/O 操作。在磁盘操作上采用了两种成熟的启发
式预读技术:
连续预读和随机预读来提高磁盘操作速度。
连续预读指如果GBase
8s 发现对于表空间段的访问是连续的,它就会提前向I/O 系统申请对数据库页
面的成批读取。随机预读是指当GBase 8s 发现对表空间中的一些空间需要完全
读到缓冲池中进行处理时,那么向I/O 系统申请对剩余空间的读请求。
GBase 8s 可以使用一个“裸磁盘”分区作为一个表空间数据文件,通过使
用裸盘,而不经过文件系统执行非缓存I/O,从而改进性能。

GBA-02DU-0001
错误码
错误标识
错误信息
GBA-02DU-000
1
ER_GCLUSTER_TA
BLE(全表删除时)
There is no table '%s.%s'
错误出现原因
无法从系统表gbase.table_distribution 中找到表'%s.%s'的信息
分析与建议
1.
请检查该表是否为express 引擎表;
2.
请检查gbase.table_distribution 表中是否记录该表信息,信息是否正确;若
无,向gbase.table_distribution 表中插入该表信息;

dbschema 输出中的分发信息
dbschema 输出中的分发信息描述了为分发创建的二进制文件,表中和每



个二进制文件中的值的范围以及每个二进制文件中的不同值的数量。
请考虑以下示例:
( 5)
1: ( 16, 7, 11)
2: ( 16, 6, 17)
3: ( 16, 8, 25)
4: ( 16, 8, 38)
5: ( 16, 7, 52)
6: ( 16, 8, 73)
7: ( 16, 12, 95)
8: ( 16, 12, 139)
9: ( 16, 11, 182)
10: ( 10, 5, 200)
最右边列中的第一个值是此列中的最小值。在本示例中,它是 5 。

左边的列显示了二进制文件号,在本示例中是 1 到 10。括号中的第一个
数字显示了二进制文件中有多少值。对于该表,是总行数 (165) 的 10%,四舍
五入为 16。
所有二进制文件
(除了最后一个二进制文件)
的第一个数字都相同。
最后一行可能具有较小的值,指示它不具有一样多的行值。在本示例中,所有
二进制文件(除了最后一个二进制文件)都包含 16 行,最后一个二进制文件
包含 10 行。
括号中的中间列指示此二进制文件中包含多少不同的值。
因此,
如果 16 个
值的二进制文件中有 11 个不同的值,它暗示这些值中的一个或多个至少重复
了一次。
括号中的右边列是二进制文件中的最大值。最后一个二进制文件中的最大
值也是表中的最大值。对于本示例,最后一个二进制文件中的最大值为 200 。