• We monitor the basics available for instance level information (including SQL and OS versions, packet and disk errors), including a wide variety of information from sys.dm_os_performance_counters: (re)compiles, total batch requests, temp table creation rate, page life expectancy, etc. Knowing which are instantaneous measurements (page life expectancy) and which are totals since restart (most of the sys.dm_os_performance_counters "/sec" counters are actually cumulative), time of last restart, etc.

    At the database level, we monitor most of the sys.databases information (so, _when_ was auto_shrink turned on? What's the default collation of each?), as well as number of VLF's in the log, and total and used log size.

    At the file level, we monitor the sys.fn_virtualfilestats information; number of read/writes, bytes read/written, and IOStall information.

    The SP that gathers the information takes less than three seconds to run, even on very old, slow hardware.

    For the future, we'd like to record security and index usage information, as well: when someone can say "It was slow between 3:42 and 4:48", then figuring out what was in use at an index level during those times is useful. Even seeing per-file IOStall and throughput is very useful.

    All of this is gathered every few minutes and recorded on a master server (linked server), where we have SQL that goes through, figures out the time between measurements (and whether the prior measurement can be used; if a server was restarted, it can't, for instance, and the time difference is since the restart, not since the previous row), and calculates the "rate" the totals are increasing at (if at all), so we can see changes over time.

    If you're going to record; record as much even remotely useful information you can manage from the sources which are fast enough to be useful. It doesn't take up much space, and perhaps later it'll help you in an audit, or after someone notices a change happened, and wants to know how long it's been like that. It's also a good defense against the "something must have changed in the database!".