![]() |
|
Модераторы: Akella |
![]()
|
|
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
С базой данных работает более 10 одинаковых приложений. Интенсивность работы с БД - периодическая (днем-вечером больше, ночью-утром меньше)
FB 2.0.3, OC Win XP. Если сразу после перезагрузки компьютера запустить их все, загрузка процессора 0-5-10%. Но затем она постепенно возрастает - дня через 4 она уже около 40% (днём или ночью - одинаково). Диспетчер задач показывает, что загрузка на совести fbserver.exe. Если закрыть все эти приложения, то загрузка снижается до минимальной, но если опять запустить, то она быстро возрастает до прежней. Полноценно помогает только перезагрузка Винды. после нее загрузка опять около 5 %. Из-за чего это может быть и как этого избежать? Может ли такое быть из-за подвисших транзакций? Как с ними бороться в общем случае? У меня есть одна таблица, к которой чаще всего обращаются все эти приложения (преимущественно на чтение). Поэтому, я так понимаю, может быть много конкурирующих транзакций. -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Много зависит от уровня изоляции, если у читателей (read; rec version) то транзакции не плодятся, и не нагружают сервер. Возможно в версии 2.0.3 есть недоработки/баги и т.д. Можно спросить на SQL.RU туда сами разработчики заходят. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
В связи с транзакциями есть несколько вопросов:
Я пишу в Билдере 6-ом, использую компоненты FIBPlus. У компонента FIBDatabase есть транзакции для чтения и обновления (свойства DefaultTransaction и DefaultUpdateTransaction). Для работы с БД использую в основном компонент FIBQuery, у которого также есть своё свойство Transaction. Поэтому возникают такие вопросы: 1) Когда я что-то делаю через FIBQuery, какие транзакции задействуются? И квери, и датабейза? Или только квери, тогда в чём смысл DefaultTransaction и DefaultUpdateTransaction? 2) Я использую одну кверю для всего (удаление, чтение, обновление, добавление). Имеет ли смысл сделать отдельную кверю для чтения и отдельную для всего остального? 3) Параметры транзакции можно указать, например так:
Но даже если их не указывать, то всё и так работает, хотя MainTransaction->TRParams=NULL. Какие установки используются по-умолчанию? Прошу прощения, что не создал для всех этих вопросов отдельную тему. Думаю что если со всем этим разберусь, то решится и главная проблема из первого топика Это сообщение отредактировал(а) ksili - 19.2.2008, 14:40 -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Deniz |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
ksili, давай по порядку.
Все рассказывать нет смысла, отправлю тебя к документации по FIBPlus и www.ibase.ru. Теперь по вопросам: Какая транзакция указана у FIBQuery та и используется. Default и DefaultUpdate сделаны у FIBDataSet.
3. Все таки настаиваю на 2 транзакциях, параметры: 1. читающая (read; read commited; rec version) 2. пишущая (write; nowait; concurrency) подробнее о транзакциях здесь и вот здесь Если параметры не указывать, то IBX использует по умолчанию (snapshot+wait+write), а FIBPlus самостоятельно прописывает параметры (read write read_committed no wait) (возможно в новых версиях что-то поменялось, надо смотреть исходники) PS: в дополнение к моему прошлому ответу цитата из статьи:
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
||||
|
|||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Deniz, спасибо!
Остальное, надеюсь додумаю сам. Помечу вопрос решённым, а пока пойду перелопачивать код. -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
![]()
|
| Правила форума "Interbase" | |
|
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |