SAP IQ 允许数据库创建者设置用于 SAP IQ 主存储和临时存储磁盘设备的页大小。当前缺省页大小为 128 KB。但是,您可以将页面大小定义为 64 KB、128 KB、256 KB 和 512 KB。
目前很少有这样的情况:页大小应小于 64KB。此大小通常适用于内存很少(在 4-8 GB RAM 以下)、32 位系统、存储空间有限且内存有限的高并发用户计数环境以及数据库非常小的系统。
将数据从内存(SAP IQ 页面)移动到磁盘(SAP IQ 块)时,SAP IQ 会将页面压缩到磁盘上的 SAP IQ 块中。当 SAP IQ 写入磁盘时,它将获取内存页及其包含的数据(用户数据、索引、位图等),并将压缩算法应用于该内存页。压缩算法的最终结果是一个数据块,缺省情况下,该块是页面大小的一部分,可平均整除 16(缺省配置允许每页 16 个块)。
压缩步骤的输出将始终是要写入磁盘的数据的连续块。该块将根据该页面上的数据压缩的程度而变化。组块将始终为 SAP IQ 块大小的倍数(缺省为页面大小的 1/16)。
尽管可以在数据库创建期间指定 SAP IQ 块大小,但通常不需要。大多数情况下可接受缺省块大小(SAP IQ 页面大小设置的 1/16)。
SAP IQ 页大小既适用于主存储设备,也适用于临时存储设备。这是需要牢记的一个重要方面。并发用户计数较高的系统可能会通过临时存储驱动相当多的临时表和工作表使用情况。通常,临时表包含一些源表提供的数据。在相当少数情况下,这只能是数万甚至数千行。由于在一个或多个页面上存储数据的最低要求,这种较低的行计数会产生更多的开销。
将为这些临时对象上的每个列和索引分配一个页。如果对象只有 100-1000 行,则绝大多数页面可能为空,但仍分配。与存储的数据相比,这可以显著增加 SAP IQ 临时存储和给定数据集的临时高速缓存所需的空间量。
例如,考虑一个包含 10 列且没有索引的表。这至少需要 10 页(每列一页)。根据数据类型和索引优化,页面可能能够存储数以万计的行。创建表以存储几百行数据,将需要与包含数千行数据的同一表相同的存储。
决定使用哪种页面大小时,需要考虑几个因素。某些因素将驱动页面大小;其他因素将是页面大小设置的结果。