Time measurement is especially important in multi-tiered applications where a bottleneck could occur at any level. Generally, you should time database transactions, not business functions. Start at transaction “send” and stop at the last row processed in the result set. Logical business operations can be aggregated later.
Granularity is important for problem identification and resolution. Important measurements to take include:
Throughput (number of transactions per second/minute/hour)
Average and maximum response time by transaction
A histogram of response time ranges by transaction. For example:
Less than 1 second
Between 1 and 2 seconds
Between 2 and 3 seconds
Over 3 seconds