![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выбор сервера БД? [D6, D7, IB4.x, MySQL]
sw © (2004-10-24 18:51:00)Есть программа для работы c Interbase базой,
на данный момент в ней уже порядка 5000-6000 тыс. записей.
На одном компьютере оставлена база, остальные (еще 5 комп-ров) обращаются как к сетевому.
В последнее отчеты (QR 1-2 страница) генерируются вообще по минут 5-6, а так как объем базы
в будующем будет нарастать возникли вопросы:
Какие коренные изменения можно(нужно) сделать чтобы как то повлиять на эту ситуацию.
Может быть бросить IB и пока не поздно переписать под MySQL или еще что-нибудь(измениться ли что-то от этого?)
Очень хочеться услышать советы от тех кто разрабатывал подобные проекты.
DSKalugin (2004-10-25 20:16:00) [21]да, и еще. На МуСКуЛ переходить не стоит - однозначно :-))
СУБД FireBird мощней на порядок.
При правильной организации структуры БД и клиентского ПО все летает со свистом. Вот у меня самая большая табличка прайсов содержит 4млн с гаком записей и она не одна такая большая. Сам файлик БД=900Мб ... Работаем в сети из 8 чел без тормозов :-))
DSKalugin (2004-10-25 20:10:00) [22]Причины может быть 2е:
0-отсутствие индексов
1-если они есть - Разбаллансировка индексов
2-поломалась сама БД
решения
для 0 : проанализировать грузовые запросы и построить индексы по полям таблиц, для которых выполняется сортировка в этих запросах (order by ...)
для 1 для всех таблиц в крайнем случае только для частомодифицируемых и больших выполнить
alter index <имя_индекса> inactive;
alter index <имя_индекса> active;
т.е перестроить их
протестируй базу на предмет ошибок утилиой gfix, если они имеются - лечи. Но это уже отдельная большая тема :-))
Удачи
sw (2004-10-25 13:55:00) [23]по порядку:
> Так. А что, на компьютере с БД тоже есть приложение, и
> соединяется
> локально Все соединения с БД должны быть одинаковыми, то есть, > соединяются по сети -> и локально тоже, плиз, через localhost.
да. хорошо на локальном поменяем на localhost.
> Кстати, а действительно, БД не на 486 установлено? Сколько
> памяти?
Конфигурация машин: клаас 6 машин: P4 2,8 HT включено, HDD 80GB(FAT32) ОЗУ 256MB
> Второе: IB - не файл-сервер,
еще раз тысяча извинений, мы совсем недавно убрали IB6.5 и поставили Firebird 1.5.0
Еще такой симптом был, и на локальных машинах и на сетевых когда открывали прогу, ооочень долго соединялся с базой потом на сервере когда запустили IBExpert зерегестировали там нашу базу, соединение стало происходить мгновенно. Ну а вот в последнее время чего-то отчеты стали задерживаться.
Карелин Артем (2004-10-25 12:14:00) [24]Наверняка в отчете много связей master-detail и с индексами напряженка.
Romkin (2004-10-25 11:02:00) [25]Nikolay M. © (25.10.04 09:53) [6] На любом компе несерьезно :))
sw (24.10.04 21:54) [4] Так. А что, на компьютере с БД тоже есть приложение, и соединяется локально? Так нельзя. Все соединения с БД должны быть одинаковыми, то есть, соединяются по сети -> и локально тоже, плиз, через localhost. Второе: IB - не файл-сервер, и запросы выполняются на компьютере с сервером, по сети идет только результат.
Третье: Откуда такой старый сервер?! ужас...
Кстати, а действительно, БД не на 486 установлено? Сколько памяти?
Nikolay M. (2004-10-25 09:53:00) [26]
> я имел в виду конечно 5-6 тыс.
Несерьезная цифирь. Если, конечно, это все не крутится на каком-нибудь 486-м компе с Вынь95 и мозгами на 64МБ.
DrPass (2004-10-24 22:38:00) [27]
> сорри ввел вас в заблуждение, я имел в виду конечно 5-6
> тыс.
У меня, например, 700 000 записей на P4-1.7, одновременно работают до 30 пользователей. Никаких проблем со скоростью. Скорее всего, у тебя просто неправильно построена логика
sw (2004-10-24 21:54:00) [28]
> Не 5-6 тысяч, а 5000-6000 тыс.
сорри ввел вас в заблуждение, я имел в виду конечно 5-6 тыс.
> 5-6 тысяч для любого sql-го движка это несерьезно. если
> 5-6мин генерируется 1 отчет
просто база то на одном компе, а когда по сети сразу 5 отчетов надо вот и задумывается.
Просто учитывая то что объем данных будет увеличиваться, чтановиться страшно, что будет через месяц.
Nikolay M. (2004-10-24 19:58:00) [29]
> 5-6 тысяч
Не 5-6 тысяч, а 5000-6000 тыс.
Правда, что такое 5 млн в БАЗЕ - мне лично это непонятно. 1 000 таблиц по 5 000 записей в каждой? Или 5 таблиц по миллиону в каждой?
> если 5-6мин генерируется 1 отчет то чтото явно не так в
> логике построения
В общем случае, оно, конечно, так, но бывает, что начальство в один прекрасный момент начинает хотеть какой-нибудь исторический отчет лет за 5 с (не)реализованными прибылями/убытками, движением LIFO/FIFO и чтобы еще всякие рюшечки на каждый день считались - тут не создавая парочу дополнительных таблиц такое быстро не построить :(
Sergey_Masloff (2004-10-24 19:10:00) [30]Бросай все на фиг пока не поздно ;-)
sniknik (2004-10-24 19:00:00) [31]5-6 тысяч для любого sql-го движка это несерьезно. если 5-6мин генерируется 1 отчет то чтото явно не так в логике построения, и смена одного движка на другой ничего не изменит.