Страница 1 из 1

Есть-ли смысл разделять базу ?

Добавлено: 28 окт 2010, 17:07
policai
Всем здравствуйте!

Есть база газеты объявлений весом за 2гб
В основной таблице свыше 7 млн записей.

Ежемесячный прирост около 80 тыс записей
Ежемесячная нагрузка - 2 млн транзакций (в основном через веб).

Периодически у веб-клиентов выскакивают блокировки на маленьких таблицах. Бывает редко, но метко - типа зачисления средств на акаунт с банковской карты

Стоит-ли вынести большую таблицу в отдельный файл или надо "точить" софт/настройки сервера

OS: SLES 9
FirebirdCS-2.5.0.26074-0.i686

CPU: INTEL Lindenhurst
RAM: 2GB
HDD: SATA RAID1 ST380817AS

DB_PAGE_SIZE: 8192
Sweep interval: 0

Re: Есть-ли смысл разделять базу ?

Добавлено: 29 окт 2010, 03:02
kdv
блокировки - это недоработка софта. когда 2 пользователя обновляют одни и те же данные, а программа это не обрабатывает.

Re: Есть-ли смысл разделять базу ?

Добавлено: 29 окт 2010, 14:25
Dimitry Sibiryakov
policai писал(а):Стоит-ли вынести большую таблицу в отдельный файл или надо "точить" софт/настройки сервера
Точить надо руки программиста и DBA.
policai писал(а):Sweep interval: 0
Или сразу отрывать по самую задницу. Из которой они (руки) и растут. Ну вот нахрена?..

Re: Есть-ли смысл разделять базу ?

Добавлено: 02 дек 2010, 16:47
dmitryk100
ну вот, какие все злые, сразу руки отрывать, лучше бы подсказали, как лучше это сделать.
тоже ж не решение на клиенте получать отлуп и ставить в цикл, пока не выполниться операция.

я пробовал вариант отлавливать эксепшн в СП и если операцию не удалось выполнить, то сохранять данные в промежуточной таблице, а с первой оказией делать повторную попытку выполнить нужную операцию. Но что то меня смущает как работает when, полноценных тестов поставить не удалось (точнее воспроизвести проблему на тестах не удалось), но похоже when не всегда отрабатывает как я того ожидаю....

вообще, насколько стоит ловить эксепшены на сервере? может ну его, пусть клиент это отслеживает? (под клиентом здесь понимаю оконечное приложение, а не пользователя, поскольку пользователю по ряду причин показывать проблему нельзя)

Re: Есть-ли смысл разделять базу ?

Добавлено: 03 дек 2010, 14:35
Dimitry Sibiryakov
Блокировки UPDATE возникают только при UPDATE. Избавишься от UPDATE - избавишься от блокировок. Всего-то надо чуть-чуть изменить структуру базы.