Главная страница
    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.46 MB
Время: 0.017 c
3-1195462325
zdm
2007-11-19 11:52
2008.04.13
Кириллица в данных о пользователе Firebird


2-1205676755
Res
2008-03-16 17:12
2008.04.13
Cardinal


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


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


2-1205767970
webpauk
2008-03-17 18:32
2008.04.13
Проблемы с TlistView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский