Today one of my reader mailed me which counters should be captured to create a baseline for measuring the throughput of SQL Server. As per me, two counters are sufficient to measure the throughput of SQL Server: Transaction/sec counter in the SQL Server Databases object and the Batch Requests/sec counter in the SQL Server General Statistics object.
Let us understand the difference between these two counters. ” Batch Requests/ sec” tracks the information about all TSQL command batches received per second even if they don’t participate in a transaction. Whereas “Transaction/sec” doesn’t measure activity unless it’s inside a transaction or it is a DML statement like INSERT\UPDATE or DELETE.
If in an environment 25 percent of workload is simple SELECT statements that are not in any transactions then Transaction/sec will be off by 25 percent, hence Batch Requests/sec is a better indicator of throughput.