Программирование >>  Реализация баз данных 

1 ... 121 122 123 [ 124 ] 125 126 127 ... 162


Проблемы с параллельным выполнением

Если несколько пользователей к БД при отсутствии блокиро-

возможны ошибки при одновременном использовании в их транзакциях одних и тех же данных. Проблемы с параллельным выполнением бывают

потерянные или скрытые обновления;

зависимость от незафиксированных данных ( грязноечтение );

несогласованный анализ (неповторяемое чтение);

чтение фантомов.

Потерянные обновления

Потерянные обновления при выборе одной строки двумя или более транзак-

циями, которые затем обновляют эту строку на основе ее первоначального значения. Ни у

одной из транзакций нет сведений о действиях, выполненных другими транзакциями. Поэтому последнее обновление записывается поверх обновлений, сделанных другими транзакциями, что приводит к потере данных.

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

Зависимость от незафиксированных данные ио4 чтение )

Зависимость от незафиксированных данных возникает, когда вторая транзакция выбирает строку, которую в это время первая транзакция. Таким образом, вторая транзакция

читает еше не зафиксированные данные, которые могут быть изменены первой транзакцией.

Занятие 3, Управление блокировками в SQL Seer

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

пользователями. Без использования блокировок логическая данных БД мо-

жет нарушиться, в результате при запросе выводятся искаженные данные. Хотя SQL Server управляет блокировками автоматиче;кн. разработаны способы увеличения эффективности разрабатываемых приложений, однако для этого надо хорошо разбираться в том, как использовать и настраивать в приложениях. В этом занятии о бло-

кировках и параллельном выполнегии в БД SQL Server, а также о способах настройки блокировок.

Изучив материал этог гия, вы сможете:

определять различные проблемы с параллельным выполнением; описывать суть оптимистического и пессимистического управления параллельным выполнением; устанавливать уровни и настраивать блокировки.

Продолжительность занятия - около 35 минут.



Например, вносит изменения в электронный документ. В это время второй

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

Несогласованный анализ (неповторяемое чтение)

Несогласованным анализом называется ситуация, когда вторая несколько раз

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

ной и той же строки с разными данными (отсюда термин неповторяемое

Например, редактор два раза читает один и тот же а в промежутке между

обращениями автор документа переделывает его. Значит, во второй раз редактор читает уже измененный документ. Этого можно избежать, если редактору разрешить чтение документа лишь в окончательной форме.

Чтение фантомов

Так называется ситуация, когда строки из диапазона строк, читаемого во время транзак-добавляются или удаляются. Первая операция чтения, исполняемая во время транзакции, показывает наличие в прочитанном диапазоне некоторой строки. Если другая транзакция удалит ее, то эта строка не будет обнаружена, когда диапазон будет прочитан в следующий раз. Аналогично, если другая транзакция добавляет в читаемый диапазон строку после первого чтения, эта строка обнаружится только при повторном чтении.

Допустим, корректор правит представленный автором документ. Но когда он передает свою документа в производственный отдел, оказывается, что автор уже внес в текст

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

Оптимистическое и пессимистическое параллельное выполнение

SQL Server поддерживает как оптимистическое, так и пессимистическое управление параллельным выполнением. При оптимистическом используются курсоры. По умолчанию в SQL Server применяется пессимистическое управление параллельным выполнением.

Оптимистическое параллельное выполнение

При оптимистическом управлении параллельным предполагается, что конф-

ликты из-за между несколькими пользователями маловероятны (но возможны).

Допускается выполнение явных транзакций без блокирования каких-либо ресурсов. Проверка ресурсов на предмет возникновения конфликтов выполняется только при попытке изменения данных. Если возникает конфликт, приложение должно заново прочесть данные и повторить попытку модификации.



Пессимическо ельно*) выполнение

Пессимистическое управление параллельным выполнением блокирует ресурсы, затребованные транзакцией, чтобы оиееиедпь ее устойчивость. Таким образом, тарантируется успешное завершение не возникнет взаимоблокировки.

Уровни изоляции

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

Уровни изоляции в стандарте S<JL-92

Несмотря на важность для транзакций упорядочения тарующего целостность БД,

полная изоляция требуется далеко не всегда. Допустим, несколько писателей работают над

разными главами одной книги одновременно. Новые главы они могут слать в любое время, однако в отредактированную главу запрещено вносить какие-либо изменения без

одобрения редактора. Таким образом, редактор уверен в том, что именно у него находится актуальная копия книги, несмотря на поступление новых, неотредактированных глав. Редактору доступны как уже так и только что написанные главы.

Уровень, на котором транзакция готова к приему несогласованные i:;] ч называется уровней иии. Уровень изоляции определяет степень изоляции одной транзакции от остальных. Более низкие веш изоляции увеличивает возможность параллельного выполнения, но за это приходится согласованностью Напротив,

более высокий уровень изоляции гарантирует согласованность данных, но при этом страдает параллельное выполнение. Pe>aiM управления блокировками, используемый SQL Server, определяется уровнем необходимым приложению.

Стандарт определяет следующие уровни изоляции, поддерживаемые SQL

Server:

неподтверждаемое чтение - самый низкий уровень, на котором изоляция транзакций гарантирует лишь защиту от чтения физически поврежденных данных;

подтверждаемое чтение - этот уровень задан в SQL Server по умолчанию;

повторяемое чтение;

упорядочение - наивысший уровень, на котором транзакции полностью изолированы друг от друга.

При исполнении транзакций на уровне упорядочения гарантировано последовательное исполнение всех перекрывающихся параллельных транзакций.

На разных уровнях изоляции допускаются различные типы режимов работы.

Уровень изоляции

Чтение Г1)яэнс>е

Неповторяемое

Чтение

чтение

фантомов

Неподтверждаемое

чтение

Подтверждаемое

чтение

Повторяемое чтение

Упорядочение



1 ... 121 122 123 [ 124 ] 125 126 127 ... 162

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика