Пропуск записей

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