I understand that DPA was founded on the premise of helping to identify and reduce waits. However, we consider blocking to be at least as significant. If a user runs a procedure and it takes 20 seconds and that isn't blocking anyone else, we consider that less of a problem than when a user runs a procedure that takes 10 seconds and blocks 30 other sessions for much of that time, we consider that to be much more of a priority to resolve than the single-user issue.
To help with that:
- The existing Blockers tab could be renamed Blocking Detail, and ideally would be available for time frames longer than one hour.
- A tab for Blocking that is similar to the tab for Trends could be made available in the All Days and single date views as well as the hourly (and smaller time frame) views. It could feature a chart showing which statements caused the most seconds of blocking.
- On the SQL tab, the current Advisor tab could be renamed Wait Advisors and a similar tab named Blocking Advisors could be added ("Query 5557571535 accounted for 12% of instance blocking time, plan indicates a full table scan. more...")
Of course, this assumes that the blockers are what I am interested in most. In general, optimizing those statements is of significant benefit. But if they have already been optimized, I then become more interested in what is getting blocked. For example, if a SELECT is experiencing significant time being blocked, perhaps it would benefit from a SET TRANSACTION ISOLATION LEVEL statement of some type. Any help DPA can be in identifying such situations would be very helpful.