混合游标

混合游标是由键集驱动的游标和动态游标的组合。 当结果集太大而无法合理保存整个结果集的键时,将使用它。 混合游标通过创建小于整个结果集但大于行集的键集来实现。

只要应用程序在键集中滚动,该行为就由键集驱动。 当应用程序在键集外部滚动时,行为是动态的:游标提取请求的行并创建新的键集。 创建新的键集后,行为将在该键集中恢复到由键集驱动。

例如,假设结果集有 1000 行,并使用键集大小为 100 且行集大小为 10 的混合游标。 提取第一个行集时,游标将创建一个由前 100 行的键组成的键集。 然后,它按照请求返回前 10 行。

现在假设另一个应用程序删除第 11 行和 101 行。 如果游标尝试检索第 11 行,它将遇到间隙,因为它具有此行的键,但行不存在;这是键集驱动的行为。 如果游标尝试检索行 101,则游标不会检测到该行缺失,因为它没有该行的键。 相反,它将检索之前的第 102 行。 这是动态游标行为。

当键集大小等于结果集大小时,混合游标等效于由键集驱动的游标。 当键集大小等于 1 时,混合游标等效于动态游标。