Я занимаюсь ре-архитектурой пары приложений, использующих Hibernate в одном случае и комбинацию Hibernate и Java Content Repository (в частности, JackRabbit ) во втором.
Ключевой проблемой в реархитектуре является повышение производительности, поэтому мне интересно, есть ли какая-то ценность в привлечении DBA для проектирования и разработки приложения.
Обратите внимание, что я не подвергаю сомнению ценность участия администратора баз данных в управлении производственными базами данных. Но в прошлых проектах было важно привлечь хорошего администратора базы данных на этапах проектирования и кодирования, разработки способов оптимизации структур данных, внедрения кода в хранимые процедуры и т. Д.
Но, учитывая, что структуры баз данных почти полностью управляются Hibernate и JackRabbit, у них мало возможностей для их оптимизации. Конечно, если мы обнаружим, что они не работают должным образом, администратор базы данных мог бы потенциально идентифицировать проблемы, и мы могли бы отправлять исправления для их исправления, но я не знаю, что мы хотели бы (или могли бы) многое сделать на пути приложения. специфический тюнинг.
Еще одна причина, по которой возникает вопрос о роли администратора баз данных в приложениях такого типа, заключается в том, что большая часть проблем с производительностью, скорее всего, выше уровня персистентности, т. Е. Дело не в том, что база данных, спящий режим или JackRabbit слишком медленные, а в том, что что то, как мы структурировали наши данные и применили их, не очень хорошо. Для решения этой проблемы потребуется моделирование данных, но средой реализации являются файлы XML и код Java, а не таблицы базы данных и SQL. А администратор БД, как правило, много знает об этом?
Скептицизм мешает мне полностью отказаться от необходимости администратора базы данных при проектировании и разработке приложения, созданного поверх уровня персистентности. Я не совсем верю, что необходимость оптимизации базы данных для конкретного приложения полностью устраняется с помощью готового решения.
Мне не хватает ключевых моментов? Может ли квалифицированный администратор баз данных настроить файлы конфигурации гибернации, чтобы сделать их быстрыми темпами для конкретных случаев использования моего приложения? Разве это безумие - подумать о запуске приложения Hibernate с высокой нагрузкой без необходимости вручную настраивать DBA, настраивать индексы и т. Д.? Или в среде разработки появилось новое существо, специализирующееся на оптимизации моделей данных на основе XML и абстрактных уровней персистентности?