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

Модераторы: kdv, CyberMax

Ответить
policai
Сообщения: 11
Зарегистрирован: 19 апр 2008, 00:44

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

Сообщение policai » 28 окт 2010, 17:07

Всем здравствуйте!

Есть база газеты объявлений весом за 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

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

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

Сообщение kdv » 29 окт 2010, 03:02

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

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

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

Сообщение Dimitry Sibiryakov » 29 окт 2010, 14:25

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

dmitryk100
Сообщения: 1
Зарегистрирован: 02 дек 2010, 16:39

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

Сообщение dmitryk100 » 02 дек 2010, 16:47

ну вот, какие все злые, сразу руки отрывать, лучше бы подсказали, как лучше это сделать.
тоже ж не решение на клиенте получать отлуп и ставить в цикл, пока не выполниться операция.

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

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

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

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

Сообщение Dimitry Sibiryakov » 03 дек 2010, 14:35

Блокировки UPDATE возникают только при UPDATE. Избавишься от UPDATE - избавишься от блокировок. Всего-то надо чуть-чуть изменить структуру базы.

Ответить