Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.13;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.016 c
2-1206041013
tim
2008-03-20 22:23
2008.04.13
проблема со скачиванием страниц


11-1187713261
Dy1
2007-08-21 20:21
2008.04.13
как использовать ExecuteConsoleAppIORedirect ?


4-1187003036
DevilDevil
2007-08-13 15:03
2008.04.13
Удалить все сообщения контролу из очереди сообщений


15-1203982965
BlackSun
2008-02-26 02:42
2008.04.13
Полупрозрачный заголовок формы в XP


15-1203951929
Tirael
2008-02-25 18:05
2008.04.13
как получить document?