This post is part 27 of a 30-part series about the Who is Active stored procedure. A new post will run each day during the month of April, 2011. After April all of these posts will be edited and combined into a single document to become the basis of the Who is Active documentation.
Thanks to your feedback over the past month, I’ve managed to get a lot of work done on the next version of Who is Active.
So much work, in fact, that I’ve finished a new major release.
Click here to download Who is Active v11.00
There are numerous enhancements in this release. In no particular order:
- CPU deltas use-time thread-based metrics for more accurate data (use both @delta_interval and @get_task_info = 2)
- command_type information added to [additional_info] column for active requests
- Modified elapsed time logic to retrieve more accurate timing information for active system SPIDs
- SQL Agent job info (job name and step name) is now included in the additional_info column (use @get_additional_info = 1)
- If there is a lock wait, information about the blocked object (name, schema name, and ID) is now included in the additional_info column (use both @get_additional_info = 1 and @get_task_info = 2)
- Service Broker activated tasks are now shown by default, without using @show_system_spids mode. The program_name column contains the queue_id and database_id associated with the activation procedure
- Various numeric columns, including reads, writes, cpu, etc, have been made nullable. These will occasionally return NULL, on extremely active systems where the DMVs return data more slowly than queries start and complete
- Query plans that cannot be rendered due to XML type limitations are now returned in an encapsulated format, with instructions, rather than sending back an error
- Added wait information for OLEDB/linked server waits
- Wait collection will now "downgrade" to get_task_info = 1 style data if no other information is available in get_task_info = 2 mode
- Added header information to online help
- Added a login_time column to the output
- The duration for sleeping sessions is now the sleep time, rather than the time since login
- Fixed various bugs
I’ve written about several of these things over the past month, and there are a couple of posts left for the remainder of the month, so I won't elaborate here.
Thank you, thank you, and thank you again to everyone who has taken the time to give me feedback and/or report bugs! Who is Active would not be what it is without you!
I would especially like to thank Paul White. Paul has acted as my unofficial "lead QA engineer" for the past few versions. He's found some very interesting bugs in my code, in addition to pointing out some quirks in the DMVs that I wasn’t handling properly. Thanks, Paul, for the great job you’ve done!
One other thing I would like to point out is an addition to the header: a donation link. Several people recently have asked me how to donate, and I didn’t have a good answer. Now, I do.
Use this link to support the Who is Active project!
While I feel strange asking for money, the truth is that I’ve invested well over a thousand hours in the stored procedure, documentation, and support (I respond to EVERY e-mail I receive from Who is Active users). If you’ve been able to improve your day-to-day performance thanks to Who is Active, it would be great if you—or even better, your employer—could help support my work on the project. I’ve listed a recommended donation of $40 per installed instance, but please donate however much you feel Who is Active is worth to you and/or your organization.
Thanks again, and enjoy!