配置 B 型树扫描程序信息来改进事务处理

通过控制 B 型树扫描程序线程从索引中除去删除项的方式,可以改进记录的数据库中的事务处理的性能。

从带有索引的表中删除行时,B 型树扫描程序改进了记录的数据库的事务处理。B 型树扫描程序根据优先级列表自动确定哪些索引分区要删除。 B 型树扫描程序线程除去已删除的索引条目,并重新均衡索引节点。B 型树扫描程序自动确定要删除哪些索引项。

在日志数据库中,当在行上执行删除或升级操作时,相应的索引条目并不是马上被删除。相反,相应的索引条目被标记为删除,直到 B 型树扫描程序线程扫描该索引并将其删除。包含很多删除标记条目的索引可导致严重的性能问题,因为索引搜索需要扫描大量条目才能找到第一个有效条目。

根据您的索引,B 型树扫描的缺省设置可以提供以下扫描类型:

然而,根据应用程序以及系统在索引中添加或删除键的不同顺序,索引结构可能会变得低效。

使用 BTSCANNER 配置参数来指定以下用于定义扫描方式的信息:

服务器对待森林树索引的方式与对待 B 型树索引的方式相同。因此,在记录的数据库中,您可以控制 B 型树扫描程序线程如何从森林树索引和 B 型树索引除去删除。

下表总结了两种扫描方式之间的差异。

表 1. B 型树扫描程序线程的扫描方式
扫描方式 描述 性能优势或问题 更多信息
叶扫描方式

在该方式中,将彻底扫描叶级的连接索引以查找删除项。

该方式只有在连接的索引上才可以使用,并且当一个分区中存在多个连接的索引时,该方式将是服务器唯一可用方式。

叶和范围扫描方式设置

Alice(自适应线性索引清理)扫描方式

如果启用了 BTSCANNER alice 选项,那么每个索引分区将接收到一个位图,用于跟踪在索引中找到删除项的位置。这种扫描将所有未找到删除操作的索引排除在外。

这些位图的初始大小和粒度取决于它们所表示的分区大小以及当前整个系统的 alice 级别。通过检查需清理页面或读取页面的比率,服务器定期检查每个位图的效率,并在必要时调整扫描以获取更好的信息。 该方式为使用过多 I/O 的索引分配额外的资源(内存)。

使用 alice 方式时可以极大地提高性能和降低 I/O。一般而言,alice 方式比范围扫描的效率高出 64 倍,并且可以根据不适用的索引来自动进行自我调整,这是范围扫描所不及的。

Alice 扫描方式值

范围扫描方式

范围扫描可由 rangesize 选项来启用,在低页面地址和高页面地址之间的范围内执行。 仅在该范围内扫描叶级的索引分区。服务器执行轻量级扫描,该扫描不立即使用并填满缓冲池,即使清理涉及整个缓冲池。

Alice 扫描与范围扫描完全相同,但其效率为后者的 64 倍,使用相同的资源,并有 128 个等同范围。

当设置 alice 方式扫描时,范围扫描将不起作用。

如果决定对只有大量大型索引的系统使用范围扫描,那么请将 rangesize 选项设置为范围扫描的最小分区大小。

叶和范围扫描方式设置

有关 BTSCANNER 配置参数的更多信息以及有关数据库服务器如何维护索引树的更多信息,请参阅 GBase 8s 管理员参考 中有关配置参数的章节以及有关磁盘结构和存储的章节。

使用 onstat -C 选项可监视 B 型树扫描程序活动。

使用 onmode -C 选项可在运行时更改 B 型树扫描程序的配置。

有关 onstat -Conmode -C 的更多信息,请参阅 GBase 8s 管理员参考