Вниз
Скачать: CL | DM;

Длинные (несколько суток) читающие транзакции в FB. Как лучше ?   Найти похожие ветки 

 
ari_9   (2007-11-20 19:26) [0]

FireBird 1.5.4, Delphi 2005, FIBPlus 6.7

В приложении есть несколько запросов, постоянно
читающих из базы данных данные. Эти запросы обновляются по определенным условиям - накоплению некоторого числа эвентов от БД или таймеру - в среднем один раз в несколько секунд. Запросы открыты в читающей транзакции с параметрами read, nowait, rec_version, read_committed, время жизни - до 3-5 суток

Запросы в компонентах pFIBDataSet, свойство AutoCommit = False (по умолчанию)

Имеет ли смысл принудительно через какое-то время или количество выполненных запросов закрывать и снова стартовать транзакции ? Вообще есть какие-то особенные принципы работы с такими транзакциями или не заморачиваться ?


 
Johnmen ©   (2007-11-20 20:03) [1]


> Имеет ли смысл принудительно через какое-то время или количество
> выполненных запросов закрывать и снова стартовать транзакции ?

Нет.

>  Вообще есть какие-то особенные принципы работы с такими
> транзакциями или не заморачиваться ?

Не заморачивайся.


 
ari_9   (2007-11-20 21:46) [2]

Johnmen

ок, спасибо


 
Виталий Панасенко(дом)   (2007-11-20 22:00) [3]


> Запросы в компонентах pFIBDataSet, свойство AutoCommit =
> False (по умолчанию)

Вообще-то, это свойство используют при наличии ДВУХ транзакций - длинной читающей и короткой пишущей.. вот для пишущей и нужно AutoCommit=TRUE


 
stud ©   (2007-11-21 12:12) [4]

Виталий Панасенко(дом)   (20.11.07 22:00) [3]
вот для пишущей и нужно AutoCommit=TRUE


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


 
Andrey ©   (2007-11-21 12:25) [5]

>есть какие-то особенные принципы работы с такими транзакциями
С такими нет. Если бы они писали, или хотя бы были репитбл_рид, тогда ты бы уже обнаружил "необоснованый" рост базы. А так всё ок.


 
Johnmen ©   (2007-11-21 12:53) [6]


> Andrey ©   (21.11.07 12:25) [5]

репитбл_рид не поддерживается, можно не обращать внимания...


 
Andrey ©   (2007-11-21 12:59) [7]

>Johnmen ©   (21.11.07 12:53) [6]
>репитбл_рид не поддерживается, можно не обращать внимания...
эм...
"SNAPSHOT (константа concurrency) - уровень изоляции, эквивалентный Repeatable Read" (це) http://ibase.ru/devinfo/ibtrans.htm
или я опять промахнулся термином? )


 
Johnmen ©   (2007-11-21 13:08) [8]


> Andrey ©   (21.11.07 12:59) [7]

Я взлюкнул :)
Конечно же snapshot.


 
Виталий Панасенко(дом)   (2007-11-21 13:51) [9]


> stud ©   (21.11.07 12:12) [4]
>
> Виталий Панасенко(дом)   (20.11.07 22:00) [3]
> вот для пишущей и нужно AutoCommit=TRUE
>
> зло это. надо явно самому управлять пишущими транзакциями,
>  чтобы потом не удивляться...

Это позволяет избежать dead-lock(не знаю, на все 100 или нет, но очень существенно).. А с дуру можно и х.. поломать.. Не смотря на то, что это гидравлика..:-)


 
Andrey ©   (2007-11-21 13:59) [10]

>Виталий Панасенко(дом)
>Это позволяет избежать dead-lock
ну... скажем это один из механизмов, который косвенно уменьшает его вероятность. но не более.
на 100% можно избавится от дедлоков только применяя SNAPSHOT TABLE STABILITY с резервированием таблиц при старте транзакции, но очень мало кто использует этот уровень изоляции... очевидно в следствии того, что он не выставлен как умолчательный )))



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.01 c
4-1186810295
Кирилл_А
2007-08-11 09:31
2008.04.13
bsToolWindow для WinApi


15-1204204894
Виталий Панасенко(дом)
2008-02-28 16:21
2008.04.13
Механизм переоценки мат.ценностей(товара)


2-1205594808
DJ_UZer
2008-03-15 18:26
2008.04.13
Цвета в combobox


2-1206029759
wowa1
2008-03-20 19:15
2008.04.13
TImageList.Draw


15-1203706540
DiamondShark
2008-02-22 21:55
2008.04.13
А у меня дочка родилась.




   Наверх