• On the compiles and recompiles...

    These counters will show high values at server start up as every incoming query needs to be compiled. The plan cache sits in memory, so doesn't survive a restart. During normal operation, you would expect compilations per second to be less than 100, and re-compilation per second to be close to zero.

    It depends, really. If I've got a system with very volatile data, where the statistics are changing fast, I want to see relatively high recompiles/sec as it means I'm getting execution plans optimal for the current state of the data. SQL recompiles for two reasons - accuracy and performance. Accuracy meaning that something in the schema has changed, performance meaning the stats have changed. If the stats have changed significantly I'd rather a recompile than a non-optimal execution plan being reused.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass