Меня интересует рефакторинг базы данных. Я имею дело с несколькими базами данных, которые не имеют большого объема данных, всего несколько ГБ, содержащих не более нескольких сотен тысяч строк. Однако у них сотни, а иногда и сотни сотен - таблиц, представлений, sprocs и функций. В некоторых местах была реализована стратегия разделения и правила с использованием схем, которая помогла некоторым проблемам увидеть принадлежность/использование таблиц. Однако это не помогло объектной связи.Сколько таблиц/sprocs/функций в базе данных слишком много?
Мы все читали, что integration via shared database не является хорошей вещью, но мы также знаем, что это, по крайней мере, какое-то время, очень продуктивная вещь, поскольку все в базе данных. Мы просто не применяем Single Responsibility Principle к базам данных, как к объектам.
Редактировать: Я должен добавить, что у меня нет проблем с производительностью базы данных. Таблицы невелики, у самого большого есть всего несколько сотен тысяч строк. Нет реальной проблемы с производительностью базы данных; за исключением случаев, когда схема/логика/реализация базы данных гротескно неэффективна (например, требуется, чтобы курсор выполнял выполнение sproc для каждой строки в результирующем наборе для предварительной обработки данных для отчета). Прежде чем вы скажете, что я должен их изменить, в этом весь смысл: я не могу, потому что база данных больше не находится в состоянии, в котором можно оценить влияние изменений.
Очевидно, что в какой-то момент вы говорите «Хватит!» и делятся на несколько баз данных, связанных сообщениями, ETL, уровнями приложений и т. д.
Вопрос в том, сколько их слишком много? Каков абсолютный верхний предел количества sprocs/таблиц/функций, которые вы можете иметь, прежде чем сойти с ума?
У меня нет проблем с производительностью в терминах базы данных. Единственная проблема, с которой я сталкиваюсь, - это технический долг. База данных не только сложна, но и неясна со многими полями, которые больше не актуальны. –