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


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

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

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

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

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

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