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

всё устарело и тормозит, с чего начать?

Добавлено: 19 апр 2007, 07:20
EV
Вот что я имею:
- БД на IB 6.5
- SQL диалект 1
- таблиц 30
- размер таблиц примерно 200000-500000 строк
- клиентов 60 ("толстые" клиенты, почти все расчёты выполняются клиентом)
-пару десятков хранимых процедур, выполняются часто.
- сервер 2 Xeon`а, 2Гб мозгов, 16 Гб в зеркале, работает 5 лет

простите за анохранизм, такое наследство :roll:

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

планирую новое железо и переход на более новые IB\FB

хочу купить такой вот сервер
Сервер Dell PE2900 Two QC X5355 2.66/4G(2x2,667,2R)/SAS 3,5 4x73G 15K/COMBO/FDD/DRAC5/PERC5/RPS

многие утверждают что это слишком много для IB, но мои задачи быстро растут

2 процессора 4-х ядерных, правда ли что у IB проблемы с такими процами?

с чего мне начать? :?

Добавлено: 19 апр 2007, 08:23
Dimitry Sibiryakov
Я бы рекомендовал начать с чтения FAQ на данном сайте. Потом - всю остальную документацию для разработчика. Ну а потом - осторожный переход на FB2.0.1 Classic.
Естественный вопрос: IB6.5 куплен?

Добавлено: 19 апр 2007, 09:58
kdv
как показывает практика - причина тормозов обычно в запросах и управлении транзакциями. железо, конечно, можно обновить, но если ты не понимаешь, где причина тормозов, это не сильно поможет.

нужно помониторить сервер, как там дела с диском, памятью, загрузкой процессора. посмотреть ibconfig. и так далее.
осторожный переход на FB2.0.1 Classic.
менее осторожный - на IB 7.5/2007, только покупать надо. можно для теста попробовать на триале, посмотреть хотя бы свои запросы, что именно больше всего грузит сервер.

Добавлено: 19 апр 2007, 10:11
WildSery
Присоединяюсь к совету Дмитрия - имхо тут больше запросы и структуру данных смотреть надо, чем железо.
На в 4 раза более быстром железе у тебя проводка будет вместо 5 минут 1 минута. Устраивает?
А вот если найти узкое место в запросах или в клиентской части - тут может получиться и в 10 и в 100 раз ускорить. Бывает и такое.

Добавлено: 19 апр 2007, 15:26
Dimitry Sibiryakov
Да, оптимизация запросов это круто, но давайте начнем с очевидного: человек гоняет старенький супер на многопроцессорном сервере и, судя по вопросу, понятия не имеет об CPU Affinity и иже с ней. А ЕМНИП правильно работать на таких конфигурациях IB научился только в 7 с гаком.

Добавлено: 19 апр 2007, 16:44
kdv
на таких конфигурациях IB научился только в 7 с гаком.
фокус вот в чем. Если человек писал на IB 6.5, то минимально безболезненно он может перейти только на такой же платный 7.5 или 2007.

На FB ему придется
1. переходить на классик, потому что супер FB не поддерживает многопроцессорность.
2. переписывать запросы, в связи с ужесточением требований к синтаксису запросов в FB 1.0 и далее.

Поэтому на мой взгляд, если начать с оптимизации сервера и своего софта, то лучше перейти пусть даже на триал 7.5, промониторить приложения, а уже потом думать о железе и покупать 7.5 или переносить все на бесплатный FB.

Вот на что надо обратить внимание в любом случае - базы 7.5 и FB уже давно несовместимы. Нужны спец-действия по переходу между ними, так и обратно на 6.5 если такое вдруг потребуется.
www.ibase.ru/devinfo/prevver.htm

Добавлено: 20 апр 2007, 09:40
EV
Вы всё правильно поняли =)
сейчас дочитываю FAQ,
хотя много статей я уже читал.

смотрел по прайсу IB 2007 стоит 122000р. это конечная сумма? или ещё что-то надо, хочу заранее доложить руководству, чтобы сдвинуть вопрос с мёртвой точки. (у меня 2-х процессорный)

по поводу оптимизации запросов и нормализации таблиц - всё ОЧЕНЬ запущено, но быстро исправить не получится, быстрее апгрейдить сервер. Сейчас например большие таблицы вступают кучей в inner join и т.д.,
хотя пытаюсь облегчить viewer и другими

на сервере ещё есть почта и прокси и локальный диск пускает пользователей для обмена файлами ((

Добавлено: 20 апр 2007, 10:16
WildSery
EV писал(а):большие таблицы вступают кучей в inner join и т.д.,
Ничего страшного не вижу. Везде вступают. Для того и пишутся. Вот если бы массовый OUTER JOIN, тут стоит задуматься.
EV писал(а):хотя пытаюсь облегчить viewer и другими
Чем-чем? View-хами что ли?
Правильно написанный большой запрос зачастую работает лучше, чем несколько вьюх, объединённых в маленьком, при равном результате запросов.

Добавлено: 20 апр 2007, 12:02
kdv
смотрел по прайсу IB 2007 стоит 122000р. это конечная сумма?
нет. странно из разных лицензий брать одну, и говорить про "конечную" сумму :-)
Пакет лицензий определяется тем, на сколько пользователей нужен сервер, и сколько процессоров хочется задействовать для СУБД.
В прайсе цены указаны конечные, т.е. включающие НДС и т.п.
на сервере ещё есть почта и прокси и локальный диск пускает пользователей для обмена файлами
понятно. в данном случае имеет смысл вообще просто отдельный для СУБД сервер.

Добавлено: 20 апр 2007, 12:12
stix-s
WildSery писал(а):
EV писал(а):большие таблицы вступают кучей в inner join и т.д.,
Ничего страшного не вижу. Везде вступают. Для того и пишутся. Вот если бы массовый OUTER JOIN, тут стоит задуматься.
EV писал(а):хотя пытаюсь облегчить viewer и другими
Чем-чем? View-хами что ли?
Правильно написанный большой запрос зачастую работает лучше, чем несколько вьюх, объединённых в маленьком, при равном результате запросов.
так, просто, мысли вслух - я вот думаю, а зачем мне вообще view, ежели он всегда перестраивается при обращении к нему, я честно говоря выигрыша по времени совсем не вижу

Добавлено: 20 апр 2007, 12:41
WildSery
Кому для чего. Кому-то из-за триггеров. Кому-то для более высокого уровня абстракции. Кто-то не использует.

Добавлено: 20 апр 2007, 13:03
EV
to kdv
я выбрал:
INT0007WWFL00U InterBase 2007 Unlimited Users License 122000 руб. Это для сервера и потом ещё для каждого пользователя надо? к тому же у меня 2 процессора, возможно каждый из них будет не одноядерным сколько стоит Per Processor или Dual Core я не увидел.
Вы мне можете что-то посоветовать и сказать общую сумму, хотя бы примерно?
спасибо!

Добавлено: 20 апр 2007, 15:01
Merlin
stix-s писал(а): так, просто, мысли вслух - я вот думаю, а зачем мне вообще view, ежели он всегда перестраивается при обращении к нему, я честно говоря выигрыша по времени совсем не вижу
Ну, секса-то с базой иногда всё-таки хочется, покой надоедает иногда.

Добавлено: 20 апр 2007, 17:09
kdv
INT0007WWFL00U InterBase 2007 Unlimited Users License 122000 руб. Это для сервера и потом ещё для каждого пользователя надо? к тому же у меня 2 процессора, возможно каждый из них будет не одноядерным сколько стоит Per Processor или Dual Core я не увидел.
Вы мне можете что-то посоветовать и сказать общую сумму, хотя бы примерно?
гм. на сайте есть описание лицензий
http://www.ibase.ru/ib7license.htm
начиная с IB 5.0 вся эта лицензионная схема до сих пор остается прежней.
Соответственно, НА ОДИН СЕРВЕР покупается
1. серверная лицензия
2. нужное число дополнительных процессорных
3. нужное число клиентских, или одна unlimited

на клиентские машины НИКАКИЕ ЛИЦЕНЗИИ НЕ СТАВЯТСЯ. Весь пакет лицензий ставится ТОЛЬКО НА СЕРВЕР.

В ПРАЙСЕ:
http://www.ibase.ru/prices/borland.htm#ib2007
уканазы все цены, в том числе и на процессорные лицензии.

Как можно не увидеть здесь цены? Объясните мне, может у меня глаз замылен :)

Добавлено: 20 апр 2007, 18:17
WildSery
kdv писал(а):Как можно не увидеть здесь цены? Объясните мне, может у меня глаз замылен :)
Это у него замылен.
А у тебя наоборот, "антизамылен". Зачастую можешь на глаз определить цену там где не указано :D

Добавлено: 20 апр 2007, 23:30
kdv
А у тебя наоборот, "антизамылен".
я про это и говорю. может я не вижу чего неочевидного.