• While I can see the point of determining the incremental costs of not only adding indexes but also things like stored procs, temp tables, and triggers as well as the cost of vs the savings from tuning queries, I can also see where it could easily cost more to do the analysis than it would bring in.

    However, if one is charging for the space and execution time that a client is consuming (especially in a database hosting situation), I wonder if it might not be possible to create an application/process that could be provided a set of parameters (possibly saved in a CostBenefitAnalysuis database? 😉 that would allow for the automation of the analysis. Thus, you could have a monitor (e.g. my preferred tool, Ignite) that provides you with information about the Wait States of queries and then, based on the other information from the system (e.g. data storage, cycles consumed, bandwidth consumed, etc.) you could hit the client with an offer to tweak, say, their worst 5 performing queries at a cost of $X with a potential savings of $Y / month which (hopefully) would pay for the original cost in Z months (hopefully within the current fiscal year).

    Ralph D. Wilson II
    Development DBA

    "Give me 6 hours to chop down a tree and I will spend the first 4 sharpening the ax."
    A. Lincoln