metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-08-23 12:50 pm

Адъ баз данных

Софт1: написан почти целиком мной, заказной: 186 таблиц, 169 хранимых процедур
Софт2: написан мной и ребе белнетмоном, коробочный: 74 таблицы, 40 хранимых процедур

[identity profile] nekhill.livejournal.com 2010-08-23 04:59 pm (UTC)(link)
Софт3: писался 5 лет, потом год доделывается нами. 120 таблиц, over 1000 хранимых процедур. Очень хотим извести количество хранимых процедур до около 400 (CRUD), но не получится, ибо местами очень дофига данных в таблицах, и нужно ускорять :)

[identity profile] vp.livejournal.com 2010-08-23 05:19 pm (UTC)(link)
1000? А в каком стиле хранимые процедуры? Может толпа чего-то мелкого?

[identity profile] nekhill.livejournal.com 2010-08-23 05:24 pm (UTC)(link)
Да, мелкого полно.
Ещё есть подсистема фильтрации объектов по 100500 критериев, которая ускорения ради делается на сервере и чтобы не тащить клиенту все 300 гб базы данных. В фильтрацию мы даже не лезем - её писал уже покинувший контору человек, любящий сильно нетрадиционные подходы.
Ещё есть слабообоснованное дублирование некоторого числа ключевых сущностей ради, допустим, многоязычной сортировки на стороне сервера БД, которое тащит за собой дублирование всех взаимодействующих ХПшек.
Собственно, всё это надо активно и жестоко чистить, но есть ещё near 500 000 строк мудрёного кода, поток новых требований и 2 разработчика на всё.

[identity profile] nekhill.livejournal.com 2010-08-23 05:27 pm (UTC)(link)
Да, приложение сначала разрабатывали таким, чтобы оно на каждый чих сохраняло все сделанные изменения в БД. Извращенцы. Сейчас точим его в направлении "грузить объектами, держать на клиенте, периодически кидать в БД". Соответственно, в результате первого подхода был написан комплект ХП на довольно атомарные операции и на каждый чих. При этом SQL-запросы в явном виде из приложения не швыряются _никогда_.

[identity profile] metaclass.livejournal.com 2010-08-23 05:21 pm (UTC)(link)
Ускорять в плане - обработку делать на сервере, поближе к данным?

[identity profile] nekhill.livejournal.com 2010-08-23 05:25 pm (UTC)(link)
Написал комментом выше.
Или просто с целью не таскать много данных клиенту, ибо в далёкой перспективе предстоит работа большого кол-ва юзверей через инет.