Блокировка приложений
Блокировка приложений
Всем привет!
При выполнении запроса происходит блокировка других приложений, связанных с этой базой.
Запрос представляет собой Left Join из 5-ти - 8-ми таблиц. Версия сервера : WI-V1.5.1.4481 Firebird 1.5 SuperServer. Приложение написано на Delphi и использует dbexpress. Приложение находится на расшареном диске и все юзвери запускают его оттуда.
Вот статистика:
Модератор: статистику удалил как не относящуюся к вопросу.
Блокировка просходит только при выполнении многоджойновых запросов. Выражается это в том, что пока запроа не пройдет, остальные приложения никак не реагируют ни на клаву, ни на мышь. Если приложение было свёрнуто, то активировать его можно лишь после выполнения запроса.
В чем может быть дело?
Помогите, пожалуйста.
При выполнении запроса происходит блокировка других приложений, связанных с этой базой.
Запрос представляет собой Left Join из 5-ти - 8-ми таблиц. Версия сервера : WI-V1.5.1.4481 Firebird 1.5 SuperServer. Приложение написано на Delphi и использует dbexpress. Приложение находится на расшареном диске и все юзвери запускают его оттуда.
Вот статистика:
Модератор: статистику удалил как не относящуюся к вопросу.
Блокировка просходит только при выполнении многоджойновых запросов. Выражается это в том, что пока запроа не пройдет, остальные приложения никак не реагируют ни на клаву, ни на мышь. Если приложение было свёрнуто, то активировать его можно лишь после выполнения запроса.
В чем может быть дело?
Помогите, пожалуйста.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Как раз этим сегодня вечером и займусьDimitry Sibiryakov писал(а):Ну так поставь классик если память позволяет.

Как я понимаю, порядок действий при переходе с супер на классик следующий :
- остановить базу
- остановить сервак
- деинсталлировать сервак
- инсталлировать сервак
- запустить сервак
- запустить базу
Есть какие-нибудь подводные камни?
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Останавливать базу ни к чему, достаточно обеспечить выход пользователей. Но и это необязательно - база обычно не страдает при силовой остановке сервера, только текущие транзакции откатятся.
Да! Обязательно проверь (gstat -h), если в базу принудительно записан размер кэша - его надо уменьшить до разумного.
Да! Обязательно проверь (gstat -h), если в базу принудительно записан размер кэша - его надо уменьшить до разумного.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
ОЗУ 1Гиг, из них порядка половины ничем не заняты. Должно хватить.Dimitry Sibiryakov писал(а):75 это умолчание. Тут надо балансировать между производительностью (больше кэша - лучше) и имеющимися ресурсами.brodjaga писал(а):А какой разумный? 75?
Если я правильно понял, то расход памяти следующий : PageSize * Cache * DBs * Users . Т.е. в моем случае : 2048 байт/страница * 75 страниц * 2 базы * 15 юзеров = 4500Кб. Что-то мало. Или я не правильно считаю?
Код: Выделить всё
Впрочем, если перестараешься и ОЗУ не хватит, ты это сразу поймешь по бешеному стрекотанию винта со свопом и возмущенным крикам пользователей. :)


-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Для классики не актуально практицки. Она действительно память не только под кеш кушает, стек процессам нужен и ваще. У меня в среднем 24 метра на коннект ест при кеше 2К*8К, в пике до 40 метров.Dimitry Sibiryakov писал(а): Но память тратится не только на кэш страниц. Ее еще можно загнать в сортировку, что чаще гораздо полезнее.