我对数据库重构感兴趣。我处理几个数据库,这些数据库没有大量数据,只有几GB,最多有几十万行。但是,它们有数百个 - 有时是数百个 - 表格,视图,sprocs和函数。在一些地方,使用模式的分治策略已经实施,这有助于看到所有权/使用表的一些问题。但是,它并没有真正帮助对象耦合。数据库中有多少个表/ sprocs /函数太多?
我们都知道integration via shared database不是一件好事,但我们也知道它至少在一段时间内是一件非常有成效的事情,因为一切都在数据库中。我们不会像对待对象那样将Single Responsibility Principle应用于数据库。
编辑:我应该补充说我没有数据库性能问题。表格并不大,最大的只有几十万行。没有真正的数据库性能问题;除非数据库架构/逻辑/实现非常低效(例如,要求使用游标对结果集中的每一行执行sproc执行以预处理报表数据)。在你说我应该改变这些之前,这就是整个观点:我不能因为数据库不再处于可以评估变化影响的状态。
显然在某个时候你说“够了!”并分为多个数据库,通过消息,ETL,应用程序层等连接。
问题是:有多少是太多?你疯了之前可以拥有的sprocs/tables/functions的数量的绝对上限是多少?
我没有性能问题在数据库方面。我面临的唯一问题是技术债务。数据库不仅很复杂,而且与许多不再相关的领域相互混淆。 – 2009-08-05 07:24:58