Преглед на изходния код
Идеята на сделка. Явни и неявни сделки.
Транзакция - логическа единица работа в базата данни, както и устройството на възстановяване при срив на база данни. Когато се ангажират промени в базата данни гарантира запазване или каквито и да било промени, или нищо. Освен това, извършва всички правила и проверки, за да се гарантира целостта на данните.
База данни сделки имат свойства, съкратени нарича киселина (валентност, последователност, изолация, Дълготрайност).
- Неразделна (валентност). Сделката се осъществява напълно или не се извършва.
- Последователността (Последователност). Сделката е на база данни от една последователна състояние в друго.
- Изолиране (Изолиране). резултати на транзакции се ползват и от други сделки само след фиксиране.
- Продължителност (Дълготрайност). След ангажират променя се превърне в постоянна.
Всички команди се изпълняват от потребители на сървъра са направени в тялото на сделката. Въпреки това, има два подхода към указанията на границите на транзакциите в потока от инструкции - открити и тайни сделката.
Изрично сделка. По подразбиране всяка команда се изпълнява като отделна сделка. Потребителят може да комбинирате няколко команди в една сделка, ясно се посочват началото и в края.
Скритият сделка. Не е старт оператор на сделката. A транзакция започва с началото на работна сесия с базата данни. Завършен сделката за следните събития:
- Изрично конфигуриран оператор извършване на транзакция - намаление на цените и да се ангажират
- изявление DDL
- Изход.
Веднага след сделката е имплицитно започва нова сделка.
нива на изолация по сделката, в Oracle разлики изпълнение от друга база данни.
Проблеми на организацията на паралелна работа:
Съответно се определят четири сценария за смущения на множество сделки по отношение на обработката на едни и същи данни.
Характеристики на реализиране на сделки с Oracle и MS SQL Server
оператори Общото управление на сделката.
- Скритият сделка. Сделката е автоматично е чел или от началото на сесията или след края на предходната сделката.
- Типове транзакции - Прочетете пишат, четат само. Транзакция само за четене еквивалентно ниво на четене Serializable изолация. Подобна сделка вижда само промените, извършени в момента на създаването си, но в този режим не се допуска вписване, актуализиране и изтриване на данни (други сесии могат да се променят данните, но сделката е само за четене - не).
- Нива на изолация - Прочетете извършил Serializable
- multiversioning механизъм. Основни функции
- Прочетете консистенция за запитвания. Заявки дават постоянни резултати в началото на тяхното изпълнение. Променлива данни се поставя в областта на сегмента на намаление на цените.
- Non-блокиране искания. Заявки, които модифицират данни, без да блокира заявки, които четат данни и четат искания не блокират променя, какъвто е случаят в други бази данни.
- контролни отчети сделки
- SET СДЕЛКИ
- COMMIT, ROLLBACK
- точка на запис
- Изрично сделка. Всеки се изпълнява оператор в своята сделка, ако не е в устройството започне Трън - извършване (намаление на цените)
- Наличието на вложени транзакции. пример
- SET СДЕЛКИ
- ЗАПОЧНЕТЕ СДЕЛКИ
- COMMIT, ROLLBACK
- точка на запис
Концепцията на ключалки. Основните видове брави.
Lock - един механизъм, който да управлява едновременно достъп до общ ресурс. Блокиране се случва, когато един притежава ресурс сесия по искане на друга сесия. В резултат на това искане на сесията ще бъде блокиран - то "увисва" Дотогава, докато държите на сесията не изключи ресурса.
Оптимистично заключване (оптимистично заключване) - набор от данни, блокиране на стратегия, в която част, съдържаща променлива влизане е блокиран само в момента на промени в записа на програмата, но не и на потребителя.
Песимистичен заключване (песимистично заключване) - набор от данни, блокиране на стратегия, в която част, съдържаща променлива рекорд е заключена по всяко време да прави промени в записа от потребителя и не е достъпен за редактиране от други потребители.
На фокус Oracle заключващ механизъм - блок данни не се съхраняват като един ресурс, и се съдържа директно в информационните блокове. Така се избягват проблеми като заключване на ескалация. -долу са изброени пет основни класа ключалки в Oracle. Първите три - често срещаните (използва се при всички бази данни на Oracle), а другите две - само в OPS (Oracle Parallel Server - Parallel сървър).
Заключване ГСД (DML ключалки). ГСД е манипулация на данните език (манипулация на данни Language), тоест, SELECT, INSERT, UPDATE ,, и изтриване. За DML брави включват, например, низ блокировка на данни или при заключването на ниво на маса, засягаща всички редове от таблицата.
Брави DDL (DDL брави). DDL е Data Definition Language (Data Definition Language), което означава, изявления създава, променя, и така нататък. DDL заключване защитава определението за обект структури.
Вътрешен заключване (вътрешни брави) и капаче (ключалки). Ключалки - обикновен инструменти от ниско ниво, за да гарантират съответствие на заявленията. Ключалки обикновено се изискват от системата в режим на готовност. Това означава, че ако не може да се установи резето, молещата сесия спира за кратко време, а след това се опитва да повтори операцията. Другите раздели могат да бъдат поискани он-лайн, което означава, че процесът ще бъде да се направи нещо друго, а не в очакване на възможност за задаване на резето. Ключалки са разпределени на случаен принцип. Фиксатори - един по-сложни средства за приоритетен достъп, те разрешава на запитващия "получите в линия" в очакване на освобождаването на ресурса. Заявяване резе уведомен веднага за освобождаването на ресурса. В случай, че блокировката молещата напълно блокиран.
Разпределени Lock (разпределени брави). Тези брави използвани за съчетаване на OPS сървърни машини ресурси в рамките на клъстера. Разпределени Lock набор от копия на базата данни, а не на отделни транзакции.
Заключете паралелно управление на кеша (PCM - Паралелни кеш диспечер Locks). Тази защита защита на блокове от данни в кеш паметта, когато се използват няколко екземпляра в базата данни.
SQL Server поддържа три основни типа брави:
Споделено Lock - сподели ключалка, която се използва, когато данните се четат операция. Разрешено е да се четат данни на друга операция, но е забранено данни промени.
Изключителен Lock - изключително заключване, който се прилага, когато данните се променят. Този регистър е напълно не позволява достъп до данните от други сделки.
Актуализация Lock - актуализация заключване, което е междинно между споделен и изключително заключване. Използва се, когато дадена сделка иска да актуализира данните в някакъв момент следващия път, но не сега, а когато този момент дойде, не иска да изчакаме още една сделка. В този случай, други сделки, има право да създаде споделени брави, но не позволяват да се установи монопол.
Защити могат да бъдат определени на три нива -
- линии ниво - нивото по подразбиране.
- ниво страница - се използва за по-ефективно използване на ресурсите и в случай на много редове с това заключване на тази страница.
- маса ниво - използвани при операции над масата, и в случай на заключване ескалация.
мъртвите зони
Възможно е, че две сделки блокират взаимно, така че непрекъсната работа не е възможно без принудително изключване на една от сделките.
например: