Home Forums SQLServerCentral.com Editorials Production Subsets RE: Production Subsets<!-- 864 -->

  • As always there is a balance to be had and it depends very much on both the task one is doing and the conditions one is doing them under.

    My preference is for developers to work against a local database with a subset of data (which is maintained through source control in some way i.e. can be completely ditched and replaced with a couple of clicks / commands), with the Continuous Integration server running tests on check-in against a large (full if it is not MASSIVE - I do mean absolutely massive) set of data and a regular CI build with fully instrumented performance tests.

    My reasoning is that it is often too expensive timewise to run the full suite of performance tests on every check-in (otherwise it encourages more infrequent and larger check-ins), developers will not want to return to work that is non-performant so will often consider performance if they know they have to pick up their own failures, developers will often continuously defer performance issues unless it breaks the build (only performance tests do that) also in some cases stored procedure performance is outside of the scope of the developer.

    Some people may immediately shout at me for the last point but I have worked on projects where the 3GL developers write stored procedures as best as they can but Database Developers (DBAs) accept the stored procedures and treat each of them as a specification. Sometimes this involves them rewriting the stored procedure but keeping identical the signature and output, occasionally there is an advised / required change to the signature and sometimes the stored procedure needs no alteration. Under these conditions I have always believed that the 3GL developers should always aim for the latter but accept that either of the former two may be the case.

    Gaz

    -- Stop your grinnin' and drop your linen...they're everywhere!!!