Това ниво на изолация позволява мръсно четене. Една транзакция може да види незаети промени, направени от друга транзакция.
За да поддържа най-високото ниво на изолация, СУБД обикновено придобива заключвания на данни, което може да доведе до загуба на едновременност и високи разходи за заключване. Това ниво на изолация отпуска това свойство.
Може да искате да разгледате статията в Уикипедия за READ UNCOMMITTED
за няколко примера и допълнително четене.
Може също да се заинтересувате да разгледате статията в блога на Джеф Атууд за това как той и неговият екип са се справили с проблема със застой в първите дни на Stack Overflow. Според Джеф:
Но е
nolock
опасно? Бихте ли прочели невалидни данни сread uncommitted
На? Да, на теория. Няма да намерите недостиг на астронавти с архитектура на базата данни, които започват да ви пускат науката за киселините и всичко, освен да изтеглите пожароизвестителната аларма на сградата, когато им кажете, че искате да опитатеnolock
.Вярно е:теорията е страшна. Но ето какво мисля аз:"На теория няма разлика между теория и практика. На практика има."Никога не бих препоръчал използването на
nolock
като общо "добро за това, което ви боли" коригиране на змийско масло за всякакви проблеми с блокирането на базата данни, които може да имате. Първо трябва да опитате да диагностицирате източника на проблема.Но на практика добавянето на
nolock
към заявки, за които абсолютно знаете, че са прости, ясни работи само за четене изглежда никога не водят до проблеми... Стига да знаете какво правите.
Една алтернатива на READ UNCOMMITTED
ниво, което може да искате да вземете предвид, е READ COMMITTED SNAPSHOT
. Отново цитирам Джеф:
Моментните снимки разчитат на изцяло нов метод за проследяване на промяната на данните ... повече от лека логическа промяна, тя изисква сървърът да обработва данните физически по различен начин. След като този нов метод за проследяване на промяната на данните е активиран, той създава копие или моментна снимка на всяка промяна на данните. Като четете тези моментни снимки, а не данни в реално време по време на спорове, споделените заключвания вече не са необходими при четене и общата производителност на базата данни може да се увеличи.