Бөлісу құралы:


Типы параллелизма

Чтобы решить проблему уменьшения параллелизма в курсорах, ODBC предоставляет четыре различных типа параллелизма курсоров:

  • Только для чтения курсор может считывать данные, но не может обновлять или удалять данные. Это тип параллелизма по умолчанию. Хотя СУБД может блокировать строки для принудительного применения уровней изоляции повторяющихся операций чтения и сериализации, они могут использовать блокировки чтения вместо блокировок записи. Это приводит к повышению параллелизма, так как другие транзакции могут по крайней мере считывать данные.

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

  • Оптимистическая параллелизм с использованием версий строк и оптимистичного параллелизма с использованием значений Курсор использует оптимистическую параллелизм: он обновляет или удаляет строки, только если они не изменились с момента последнего чтения. Чтобы обнаружить изменения, он сравнивает версии строк или значения. Нет никаких гарантий, что курсор сможет обновить или удалить строку, но параллелизм гораздо выше, чем при использовании блокировки. Дополнительные сведения см. в следующем разделе: оптимистическое параллелизм.

Приложение указывает тип параллелизма, который он хочет использовать с атрибутом инструкции SQL_ATTR_CONCURRENCY. Чтобы определить поддерживаемые типы, он вызывает SQLGetInfo с параметром SQL_SCROLL_CONCURRENCY.