MurCode
Форумы
Поиск
О проекте
Firebird, InterBase
Новое сообщение
Пропуск записей
Nikky
Дата: 22.09.2005 13:12:20
Я не очень хорошо разбираюсь в интербэйзе (надо резко сделать экспорт данных по работе), поэтому такой вопрос - есть ли в нем пропуск заблокированных записей? Т.е. такого, что select возвращает только незаблокированную часть данных, а не ждет разблокировки/читает старую версию.
fraks
Дата: 22.09.2005 13:24:38
Вопрос не в строчку.
Транзакция типа READ COMMITTED видит все записи которые были закоммичены (и не видит тех которые НЕ закоммичены). Видит в том числе и те записи которые в данный момент изменяются (т.е. проапдейчены, но не закоммичены) но ту версию этих записей которая была ДО изменения.
В общем RC транзакция покажет тебе все подтержденные записи. Никаких блокировок на чтение нету.
Для углубления в этот предмет без доки и вдумчивого чтения статей на
www.ibase.ru
не обойтись.
Nikky
Дата: 22.09.2005 14:14:58
версионная блокировка короче, получается только есть?
fraks
Дата: 22.09.2005 14:24:21
Называют это "конфликт обновлений", т.е. запись которая была изменена в одной транзакции не может быть изменена в другой пока первая не завершится чем-то (commit или rollback).
Есть еще термин "блокировать запись холостым update"
это типа update table set id = :id where id = :id;
Этот update ничего в данных не меняет но запись считается измененной и потому более никто в ней ничего изменить не может пока первая транзакция не завершится.
В общем случае блокировок от чтения нету. Точнее писатели не мешают читателям если только они сами этого не хотят.
kdv
Дата: 22.09.2005 15:27:24
чего тебе надо-то, ты объясни? Зачем тебе "пропускать" обновляемые в данный момент записи? Все равно эти обновления до commit никому (кроме обновляющей транзакции) не видны. А после commit - они становятся актуальными.
Nikky
Дата: 22.09.2005 17:41:27
kdv
чего тебе надо-то, ты объясни? Зачем тебе "пропускать" обновляемые в данный момент записи? Все равно эти обновления до commit никому (кроме обновляющей транзакции) не видны. А после commit - они становятся актуальными.
Мне надо разобраться, может ли быть такое, что какие-то записи не попадают в селект по внешним причинам :)
fynda
Дата: 22.09.2005 17:49:27
Nikky wrote:
>
> Мне надо разобраться, может ли быть такое, что какие-то записи не
> попадают в селект по внешним причинам :)
А что такое "внешние причины"? Транзакция таковой не является точно.
Что-то еще?
Posted via ActualForum NNTP Server 1.3
kdv
Дата: 22.09.2005 18:00:10
посмотри
http://www.ibase.ru/devinfo/mga.htm