Note that there are some explanatory texts on larger screens.

plurals
  1. POHow many tables/sprocs/functions in a database is too many?
    text
    copied!<p>I'm interested in database refactoring. I deal with several databases that don't have a large amount of data, just a few GB with at most a few hundred thousand rows. However, they have hundreds -- sometimes many hundreds -- of tables, views, sprocs and functions. In some places a divide-and-rule strategy using schemas has been implemented which has helped some problems of seeing ownership/usage of tables. However, it hasn't really helped object coupling.</p> <p>We all read that <a href="http://www.eaipatterns.com/SharedDataBaseIntegration.html" rel="nofollow noreferrer">integration via shared database</a> isn't A Good Thing, but we also know that it is, at least for a while , a very productive thing as everything is in the database. We just don't apply the <a href="http://en.wikipedia.org/wiki/Single_responsibility_principle" rel="nofollow noreferrer">Single Responsibility Principle</a> to databases like we do to objects.</p> <p><em>Edit</em>: I should add that I have no database performance issues. The tables are not large, the biggest has only a few hundred thousand rows. There is no real database performance issue; except when the database schema/logic/implementation is grotesquely inefficient (say requiring a cursor to do a sproc execution for each row in a result set in order to pre-process data for a report). Before you say I should change these, that is the whole point: I can't because the database is no longer in a state where the impact of changes can be assessed.</p> <p>Clearly at some point you say "Enough!" and divide into multiple databases connected by messages, ETL, application tiers etc etc</p> <p>The question is: how many is too many? What is the absolute upper limit of the number of sprocs/tables/functions that you can have before you go insane?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload