Deadlock Detector: Drop it like it’s hot!
April 23, 2013 5 Comments
Last time I talked about the right tool for the right job. After that post, I noticed that during the nightly backups and job-runs, the SQL Server log filled up with deadlocks. Hoping to find the cause of this issue, I installed SQL Solutions Deadlock Detector. But I must warn you: it’s easier to install it, then to get rid of it!
The drama starts with downloading the tool. If you go to the download location of the tool, there’s no mention of a trial-version. They do like to tell you that it’s free… A lot of times… But guess what… It isn’t!
After downloading the tool, I started the installation. Again, there’s no mention of any kind that I’ve just downloaded a trial version, and that you need to pay for the tool after 7 days.
After the installation I started the tool. The tool shows you for the first time that you’re actually running a triall:
After I clicked on “Try”, I was prompted to enter a SQL instance to run the tool on. After giving it my SQL Server instance location and name, it showed a pop-up really quick. Apparently it installed a bunch of crap on my SQL instance! Again, there is NO mention that it needs to install objects in your msdb! Also, SQL Server Agent needs to run on your instance, because Deadlock Detector can’t run without that.
So what does Deadlock Detector install? I’ve created a screenshot of all the objects that are installed:
Okay, the tool wasn’t what I was looking for, so I wanted to uninstall it. But how do I get rid of all those objects that were created in my msdb database?
First I uninstalled the tool, hoping that it would also drop all the objects it created. But at the end of the uninstall, it sent me to this webpage. So I’m suppost to download a special uninstaller to get rid of your installer?
Okay, so I downloaded the special installer-uninstaller, and ran it. Close, but no cigar… The tool ran, returned no errors, but the objects still existed. Running it again, ended with the same results.
To check it yourself, run this query:
SELECT * FROM msdb.LakeSideLockLogger._LakeSide_DbTools_LockLog
If it’s still running you’ll see record appear that tell you that there were deadlocks on your system. Even though you closed the tool and, like me, expect it to shutdown, the services still run.
To check if the objects still exist on your server, run this query:
SELECT * FROM msdb.sys.objects WHERE 1 = 1 AND is_ms_shipped = 0 AND Name LIKE '_LakeSide%'
So what do you do then? Right, I sent the company a support call. I’ve waited more than a week by now, but still no reply. Not even a reply that they’ve received my mail. So a really, really bad service of SQL Solutions if you ask me…
So after a lot of searching, I saw a really small reference to another uninstall method: from the tool itself. So I’ve re-installed the tool, and tried that:
And that worked for me!
Apparently more people had issues with uninstalling the tool, looking at results like this.
The thing I learned from this, is to dig a little bit deeper if I look at a new tool. The website of the tool’s manufacturer might not be the best source to find out how a tools functions…
In the mean while, I found some more objects that aren’t uninstalled by Deadlock Detector: Operators and Alerts. Even though you’ve “uninstalled” the tool, objects, queues, etc, there are still some leftovers: 1 operator, and 3 alerts.
You can drop them by running the script below:
--Drop Operator EXEC msdb.dbo.sp_delete_operator @name=N'Deadlock Detector – Default operator' GO --Drop Alerts EXEC msdb.dbo.sp_delete_alert @name=N'Deadlock Detector – Process is killed' GO EXEC msdb.dbo.sp_delete_alert @name=N'Deadlock Detector – Lock is detected' GO EXEC msdb.dbo.sp_delete_alert @name=N'Deadlock Detector – Deadlock is detected' GO