Поделиться через


Смешанные курсоры

Смешанный курсор — это сочетание курсора на основе набора ключей и динамического курсора. Он используется, если результирующий набор слишком велик, чтобы достаточно сохранить ключи для всего результирующий набор. Смешанные курсоры реализуются путем создания набора ключей, который меньше всего результирующий набор, но больше набора строк.

Пока приложение прокручивается в наборе ключей, поведение управляется набором ключей. При прокрутке приложения за пределами набора ключей поведение является динамическим: курсор извлекает запрошенные строки и создает новый набор ключей. После создания нового набора ключей поведение отменить изменения для набора ключей, управляемого этим набором ключей.

Например, предположим, что результирующий набор содержит 1000 строк и использует смешанный курсор с размером набора ключей размером 100 и размером набора строк 10. При получении первого набора строк курсор создает набор ключей, состоящий из ключей для первых 100 строк. Затем он возвращает первые 10 строк, как запрошено.

Теперь предположим, что другое приложение удаляет строки 11 и 101. Если курсор пытается получить строку 11, он столкнется с разрывом, так как он имеет ключ для этой строки, но строка не существует; это поведение, управляемое набором ключей. Если курсор пытается получить строку 101, курсор не обнаружит отсутствие строки, так как он не имеет ключа для строки. Вместо этого он извлекает ранее строку 102. Это динамическое поведение курсора.

Смешанный курсор эквивалентен курсору, управляемому набором ключей, если размер набора ключей равен размеру результирующий набор. Смешанный курсор эквивалентен динамическому курсору, если размер набора ключей равен 1.