Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.15;
Скачать: CL | DM;

Вниз

Компонент TIBTransaction, один или больше ?   Найти похожие ветки 

 
Andrey V.   (2003-08-22 23:09) [0]

Я недавно на InterBase и обычно делаю один TIBTransaction.
А тут что-то подумал, поскольку все ibQuery можно (у меня)
условно поделить на две части (1-только читает данные чтоб показать
в гриде,2-это различные INSERTы,UPDATEы и т.п.),может для них сделать
отдельные транзакции, может даже в отдельном потоке (?).
Подскажите, правильный ли это подход ? Если - да , скажите с какими тогда параметрами лучше создавать транзакцию ?


 
Johnmen ©   (2003-08-23 03:25) [1]

Правильный подход - две тр-ии. Одна читающая, другая пишущая, причем пишущая как можно короче.
Двойной клик на IBTransaction и выбирай Read_Committed.
Отдельный поток - в подавляющем большинстве случаев излишен.


 
MsGuns ©   (2003-08-24 15:27) [2]

Где-то читал, что отдельный поток для обращения к тому же серверу - это попытка вторично оплодотворить уже беременную женщину ;))


 
DrPass ©   (2003-08-24 17:55) [3]

>Andrey V.
И при этом подразумевается, что ты не держишь наборы данных открытыми, а транзакции незавершенными, на протяжении всего времени работы программы, а так: считал/закрыл, записал/закрыл и т.д.


 
MsGuns ©   (2003-08-24 18:28) [4]

>DrPass © (24.08.03 17:55) [3]
Что касается "записал-завершил" - понятно, а вот в чем смысл фразы "считал-закрыл" ? А если я даю читающему запросу Open и надо чтоб узер его наблюдал "до бесконечности" (в смысле пока не надоест) ? Чего мне надо закрывать ?
У меня такое впечатление, что я не догнал какой-то укрытый смысл в закрытии "читающих" транзакций.


 
Zacho ©   (2003-08-25 07:20) [5]


> MsGuns © (24.08.03 18:28) [4]
> У меня такое впечатление, что я не догнал какой-то укрытый
> смысл в закрытии "читающих" транзакций.

На блокировочниках - есть такой смысл, а в IB с транзакциями ReadCommited - действительно нет.

> Andrey V. (22.08.03 23:09)

Сильно рекомендую почитать статьи на http://www.ibase.ru/develop.htm


 
don-do   (2003-08-25 07:33) [6]

есть опыт использования 2х тр.
когда одна еще не завершилась, а другая в это время пытается обновить данные получаем deadlock. При работе с кол-вом тр. больше 1 нужно быть осторожным. Есть смысл использовать отдельно читающую тр. для встроенных отчетов.


 
Andrey V.   (2003-08-25 10:08) [7]

Так если одна тр. только читает , а другая заимается только INSERT/UPDATE/DELETE вроде дидлока не должно быть ?

Есть еще вопрос, но об этом в следующей месаге...


 
Zacho ©   (2003-08-25 10:35) [8]


> Andrey V. (25.08.03 10:08) [7]
> Так если одна тр. только читает , а другая заимается только
> INSERT/UPDATE/DELETE вроде дидлока не должно быть

Если с БД только один коннект - да. А если несколько, то почему бы и нет ?
P.S. Еще раз рекомендую прочитать статьи, особенно http://www.ibase.ru/devinfo/ibtrans.htm


 
don-do   (2003-08-25 10:39) [9]

>Так если одна тр. только читает , а другая заимается только INSERT/UPDATE/DELETE вроде дидлока не должно быть ?

когда одна еще не завершилась, а другая в это время пытается обновить данные получаем deadlock, это так, но зависит от уровня изоляции.


 
koks   (2003-08-25 16:36) [10]

вопрос в продолжение: как грамотно управлять UpdateTransaction в FIBPlus.

С читающей все понятно:

переоткрываем набор:

if SelectQuery.Active then SelectQuery.Close;
if SelectTransaction.InTransaction then SelectTransaction.Commit;
SelectTransaction.StartTransaction;
SelectQuery.Open;
.....

а где и как управлять UpdateTransaction...



Страницы: 1 вся ветка

Текущий архив: 2003.09.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.033 c
1-48570
Evgeniy_K
2003-09-04 11:19
2003.09.15
Хук на F1


14-48743
DimaK
2003-08-27 14:19
2003.09.15
Очень надо!


1-48640
Alexey Klimov
2003-08-31 10:30
2003.09.15
Принтер и Фотошоп


14-48779
neXt
2003-08-26 09:43
2003.09.15
Перл умер. Да здравствует Питон.


3-48466
Nikolai_S
2003-08-22 16:00
2003.09.15
Сохранение данных из базы данных в MS Word