【发布时间】:2010-11-16 19:09:12
【问题描述】:
我对数据库重构很感兴趣。我处理了几个没有大量数据的数据库,只有几 GB,最多有几十万行。然而,它们有数百个——有时是数百个——表、视图、存储过程和函数。在某些地方,已经实施了使用模式的分而治之策略,这有助于解决查看表的所有权/使用情况的一些问题。但是,它并没有真正帮助对象耦合。
我们都知道integration via shared database 不是一件好事,但我们也知道它至少在一段时间内是一件非常高效的事情,因为一切都在数据库中。我们只是不像我们对对象那样将Single Responsibility Principle 应用于数据库。
编辑:我应该补充一点,我没有数据库性能问题。表并不大,最大的只有几十万行。没有真正的数据库性能问题;除非数据库模式/逻辑/实现效率非常低下(比如需要游标对结果集中的每一行执行存储过程,以便为报告预处理数据)。在您说我应该更改这些之前,重点是:我不能,因为数据库不再处于可以评估更改影响的状态。
很明显,您有时会说“够了!”并划分为多个通过消息、ETL、应用层等连接的数据库
问题是:多少才算太多?在你发疯之前,你可以拥有的 sprocs/tables/functions 数量的绝对上限是多少?
【问题讨论】:
标签: sql-server database-design refactoring refactoring-databases