I have a large table which is both heavily read, and heavily written (append only actually).
I’d like to get an understanding of how the indexes are affecting write speed, ideally the duration spent updating them (vs the duration spent inserting), but otherwise some sort of feel for the resources used solely for the index maintenance.
Is this something that exists in sqlserver/profiler somewhere?
Thanks.
Look at the various
...wait...columns undersys.dm_db_index_operational_stats. This will account for waits for locks and latches, however it will not account for log write times. For log writes you can do a simple math based on row size (ie. a new index that is 10 bytes wide on a table that is 100 bytes wide will add 10% log write) since log write time is driven just by the number of bytes written. TheLog Flush...counters under Database Object will measure the current overall DB wide log wait times.Ultimately, the best measurement is base line comparison of well controlled test load.