Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выбор сервера БД? [D6, D7, IB4.x, MySQL]


Страницы:   1 2

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 отчет то чтото явно не так в логике построения, и смена одного движка на другой ничего не изменит.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо