什么是页?
数据页(也称数据块)是 DM 数据库中最小的数据存储单元。页的大小对应物理存储空间上特定数量的存储字节,在 DM 数据库中,页大小可以为 4KB、8KB、16KB 或者 32KB,用户在创建数据库时可以指定,默认大小为 8KB,一旦创建好了数据库,则在该库的整个生命周期内,页大小都不能够改变。
页头控制信息包含了关于页类型、页地址等信息。页的中部存放数据,为了更好地利用数据页,在数据页的尾部专门留出一部分空间用于存放行偏移数组,行偏移数组用于标识页上的空间占用情况以便管理数据页自身的空间。
在绝大多数情况下,用户都无需干预 DM 数据库对数据页的管理。但是 DM 数据库还是提供了选项供用户选择,使得在某些情况下能够为用户提供更佳的数据处理性能。
FILLFACTOR 是 DM 数据库提供的一个与性能有关的数据页级存储参数,它指定一个数据页初始化后插入数据时最大可以使用空间的百分比(100),该值在创建表/索引时可以指定。设置 FILLFACTOR 参数的值,是为了指定数据页中的可用空间百分比(FILLFACTOR)和可扩展空间百分比(100-FILLFACTOR)。可用空间用来执行更多的 INSERT 操作,可扩展空间用来为数据页保留一定的空间,以防止在今后的更新操作中增加列或者修改变长列的长度时,引起数据页的频繁分裂。当插入的数据占据的数据页空间百分比低FILLFACTOR时,允许数据插入该页,否则将当前数据页中的数据分为两部分,一部分保留在当前数据页中,另一部分存入一个新页中。
对于 DBA 来说,使用 FILLFACTOR 时应该在空间和性能之间进行权衡。为了充分利用空间,用户可以设置一个很高的 FILLFACTOR 值,如 100,但是这可能会导致在后续更新数据时,频繁引起页分裂,而导致需要大量的 I/O 操作。为了提高更新数据的性能,可以设置一个相对较低(但不是过低)的 FILLFACTOR 值,使得后续执行更新操作时,可以尽量避免数据页的分裂,提升 I/O 性能,不过这是以牺牲空间利用率来换取性能的提高。
如何选择页大小?
创建实例时可以填写页大小:
数据页,也称数据块,是达梦数据库中最小的数据存储单元。页的大小对应物理存储空间上特定数量的存储字节。数据文件使用的页大小,可以为4K、8K、16K或32K。选择的页面大小数值越大,则达梦数据库支持的元组长度越长,但同时空间利用率下降。在数据库中的一张表中,除clob,blob类型以外的所有列加起来不能超过页大小的一半,实际数据库中插入表中的列长度要受到记录长度的约束(也就是由数据库页面大小决定),每条记录总长度不能大于页面大小的一半。例如我们页大小初始化是 32K,某表中有 3 个 VARCHAR 类型的字段,那么每个字段最大长度不能操作 8188 字节,且每条记录不能超过页大小(32K)的一半,也就是不能超过16K,如果记录超过16K 时,会报“错误号: -2665错误消息: [P] 记录超长”。在建表时可以在STORAGE 子句中指定USING LONG ROW 选项,避免表受页大小的影响。
注意事项
文章
阅读量
获赞