Руководство по созданию эффективных запросов


Влияние одновременного доступа



Download 17,08 Mb.
Pdf ko'rish
bet120/210
Sana25.06.2022
Hajmi17,08 Mb.
#704548
TuriРуководство
1   ...   116   117   118   119   120   121   122   123   ...   210
Bog'liq
OptimizZaprvPostgreSQL

Влияние одновременного доступа
Для обеспечения правильного порядка операций диспетчеры транзакций 
обычно используют замки (блокировки).
Если транзакции необходима блокировка, а другая транзакция уже удер-
живает конфликтующую блокировку, выполнение откладывается до тех пор, 
пока конфликтующая блокировка не будет снята. Такое ожидание блокиров-
ки – основная причина задержек в операциях модификации.
Еще одна задача управления одновременным доступом – гарантировать, 
что обновления не будут потеряны. Любые обновления, выполненные зафик-
сированной транзакцией, должны надежно сохраняться на жестком диске 
перед фиксацией. Для этого используется журнал предзаписи. Все изменения 
данных регистрируются в журнальных записях на жестком диске, прежде 
чем транзакцию можно будет зафиксировать. Журнальные записи ведутся 
последовательно, а на медленных вращающихся дисках последовательные 
операции чтения и записи выполняются на два порядка быстрее, чем произ-
вольные. На твердотельных накопителях эта разница незначительна. Фикса-
ция не должна ждать, пока в базу данных будут записаны все изменения из 
кеша, но обязана дождаться сброса журнала предзаписи. В результате слиш-
ком частые фиксации могут значительно замедлить обработку. Крайний слу-
чай – когда каждая команда DML выполняется в отдельной транзакции. Так 
действительно бывает, если приложение не использует команды управления 
транзакциями, и поэтому база данных превращает каждую команду в от-
дельную транзакцию. С другой стороны, слишком длинные транзакции могут 
вызвать замедление из-за блокировок.
Приведенные выше соображения применимы к любой высокопроизво-
дительной базе данных. Рассмотрим специфику PostgreSQL.


160

Оптимизация модификации данных
Одна из отличительных особенностей PostgreSQL заключается в том, что 
она никогда не выполняет обновления на месте. Вместо этого новая версия 
элемента (например, строки таблицы) вставляется и сохраняется в свободное 
место в том же или в новом выделенном блоке, в то время как предыдущая 
версия не перезаписывается тотчас же.
На рис. 8.1 показана структура блока с рис. 3.1 после удаления (или обнов-
ления) второй строки. Пространство, ранее занятое этой строкой, нельзя ис-
пользовать для другой строки; по сути, удаленные данные все еще доступны.
Заголовок блока
Указатели 
на логические 
элементы
Свободное 
пространство
Строки таблицы
Мертвая строка 
Конец блока

Download 17,08 Mb.

Do'stlaringiz bilan baham:
1   ...   116   117   118   119   120   121   122   123   ...   210




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish