Padre’s Toolbox

I have been working with SQL long enough that I have built my personal “toolbox” for SQL related tools that I use on a regular basis. They range from FREE to minimal cost (by that I mean mostly under $100; yeah, I know I am cheap).

You can find my tools here, Padre’s Toolbox and I hope to keep it updated as I test drive and use more and more different SQL programs.  For now, I will briefly introduce my favorite tools (in no particular order).  In the future, I hope to write a post on how and why I am using these tools.

SQL CoPilot

Since my initial review of this software, Richard Fryar has even further enhanced his product to include Query Plan analysis. 

SQL Server First-Aid Kit

This is from Brent Ozar Unlimited.  Enough Said! You not only get their excellent diagnostic scripts, but e-books, whitepapers, and posters Oh My!

DMV Diagnostic Queries

Here is the most recent iteration of Glenn Berry’s fantastic information queries.  Glenn has been providing these since SQL 2005 and if SQL stores the information, these queries will find it!

Idera Free Tools

A collection of free SQL tools, I find my self using these more and more for “spot checking” issues or problems.

Terminals

Not technically a SQL Tools, but as a DBA we have to sometimes manage the OS itself.  This tool is crucial for me to be able to remote into multiple servers without having to minimize RDP session to switch between servers.

SQL Sentry Plan Explorer

My newest tool in my arsenal, is one that quite frankly scared the hell out of me at first.  Just like Cache Plans in general. But I am mudding through the learning process and I am coming to rely more and more on this program.  I haven’t purchased the “Pro” version yet, so I am still evaluating the usefulness of this program and see if I can justify the cost to my “powers-that-be”

SQL CoPilot–A Software Review

As the only DBA in a 24 x7, mission critical shop (I work in a hospital) managing over 60 instances of SQL Server ranging from version 8 to 11; I am ALWAYS on the lookout for Software that will help me manage instances.  Heck, who am I kidding.  I want a cheap piece of software (since I have NO software budget to speak of) that tells me what I need to know when I need to know it and be able to present it to the “powers that be” so I can argue for more RAM, more CPU cycles and more SAN space.  And that is exactly what SQL CoPilot does for me as well as many other things.

SQL CoPilot is not really a “program” in the traditional sense of the word.  It does not get installed, it does not run a windows service and it doesn’t require a bunch of resources on target servers.  So how does it work?  To be perfectly honest, I am not sure.  But because it is not compatible with SQL 2000, I can only assume it uses DMV and DMF to determine all the information it needs. Because SQL 2005 and later are designed to return DMV and DMF results quickly, the response time for CoPilot is amazing, even with heavily used machines.

So what can the program do for you?  Just read this “About Page” to see what all information is presented to you in a quick and efficient manner.  This is a snap shot of the main page.  It’s interface is VERY intuitive and simple to understand.  All of the “snap shot” squares found in the “Big Picture” are navigable to a page with detailed information.

image

The information presented for databases is very detailed and very informative.databases-gallery

And the best part?  If you just want a snap shot or a quick glance at your instances, then try out the SQL CoPilot Free Edition, but I promise you, after a week of using SQL CoPilot you will want to buy a full license. You will want to see the additional features: like unused indexes, duplicate indexes, index fragmentation and all sort of other “goodies”.  I know I did!  And for only $120 per licensed USER (that’s right USER, not instance) it is the best bargain out there.  Many 3rd party software that provides this type of information charges hundred’s of dollars per instance monitored.

As much as I have praised SQL CoPilot, for me, there are some downsides.  It doesn’t work with SQL 2000.  But hey, I may be the only schmuck who is still using it in production.  I doubt it, but at least I have fewer instances to really dig up the details on because of SQL CoPilot.

SQL CoPilot does not have a method of “capturing” the data it collects for baseline measurements or historical information.  This is not a monitoring tool with a historical repository, but it is so close to that it makes me want more.  Maybe just a simple button to say, “snap shot it” and it would record all the information for that view in a pre-determined repository database somewhere.

All in all, this product is well worth the $120 purchase price!  Give the Free Version a try and I would be willing to bet you a cup of coffee that within a month you will pay for the full version!

Software Review: Idera’s SQL Elements

Over the last few weeks, I have had the opportunity to beta test Idera’s newest product, SQL Elements.  My initial response?  This is both a “fantastic” product and a “tease” of a product, I’ll explain later. Idera has definitely done their homework.

Initial install is easy; all you need is a web server, SQL Server for a data repository, and a Domain Service Account with SysAdmin privileges on the SQL Servers you would like to monitor or SQL account with SA privileges. My environment uses a Domain Security Group called SQL-DBA. Since it includes both my account and all service accounts that need SysAdmin rights, I just used one of these service accounts.

One of the better aspects of SQL Elements (SE) is the “auto discover” feature; it finds the servers for you.  It basically scours your network to find all SQL Server instances it can find, including Express Editions. Even if the service account does not have SysAdmin rights, SE will find the server and provide a listing for it, which can help you to realize which SQL Servers, you as a DBA, do not have access to.  It sometimes has problems determining the instance name (if you are using named instances example: “Server\SQLExpress,”), but who really uses SQL Express Edition for production anyway? You can always manually add the named instance to avoid that issue. This feature also periodically scan’s the network for any new instances and automatically adds them to the “Discovered Instances” list so you know when someone else installs SQL Server.  NICE FEATURE!

SQL Elements uses the concept of “health checks” to determine the status of your SQL Server.  These health checks include: DBCC CHECKDB consistency, current backup checks, auto-shrink enabled, and “optimize for ad hoc workloads” just to name a few.  Many of the more critical checks have email alerts associated with them to let you know when a database is filling up or when a drive is running out of room.

Once you login to the website, the Dashboard for SE provides a brilliant snapshot of your environment. First and foremost, at the top is the “Health Check Recommendations” that SE has found in your environment. Each Health Check is given a “Level” based on the severity of the problem.  Idera provides a brief explanation of why each recommendation is made and a link to a more detailed explanation. Once you review the recommendations, you have the choice of dismissing the alert or refreshing the alert supposedly after you have resolved the issue with the recommendation.

Below the recommendations are two simple graphs listing “Top Databases by Size” and “Top Databases by Activity”.  Personally, I wish I could hide this module of the dashboard and move the “Instances” grid below it up. I haven’t found much use for these two graphs, but maybe that is just me.  The grid of Instances is very user-friendly; it’s a simple list of what instances are being monitored, their monitoring status, response time, version, # of databases, and total size of databases. Each column is sortable,  and the grid works on 20 listings per page which is a very reasonable size to work with.

On the right side menu, is a simple “My Environment” section, which allows you to manage the SQL Servers in your environment.  The ability to classify the servers by “tags” is nice, especially if you want to just look at your “Critical 24×7” servers or just your “Test” servers. I really like the concept of “labeling” SQL Servers with a category so I can prioritize the server health check recommendations. I only wish when selecting a “tag” the resulting page showed the “Health Checks” for those specific servers, not the “Explorer” tab.

Clicking on the Instance name actually brings you to a very valuable “Instance Details” page. Again, at the top is the list of Health Check Recommendations for this particular instance.  Below that is a grid listing all the databases found on the instance as well their status, recommendations, type, data size, log size, and activity. I would love this grid to include the Compatibility level of the database, because many time developers will restore, move, or copy a database from one server to a higher edition server and not change the compatibility level.  On the right side menu, you have simple information pertaining to this particular instance.  Clicking on the Server Name, however, will bring you to “Hardware Details”. There is also a link to view the SQL configuration settings.

There are more sources of information found in SQL Elements. I won’t go into those here, but they include an “Explorer” tab, which allows you to explore your environment by filters and tags can be helpful when trying to locate a specific server in a larger environment. As my environment is not that large, I really haven’t used it much.

So, after this “novel” of a review, here is what I think of SQL Elements:

First and foremost, the application is well written, has smooth transitions between pages, and has yet to throw any type of exception error with me. The ability to classify instances is a wonderful concept and I use it everyday.  One of the additional features that I truly enjoy is the ability to assign an owner and location to an instance. I assign the “end user” as the owner and either “Data Center” (for physical servers) or “VM Ware” (for well, VM instances). That way, I quickly know if I am dealing with a physical server or not.  Monitored instances have to be SQL 2005 SP1 or above, which in my environment leaves me a little frustrated since, unfortunately, we are still running a dozen or so SQL 2000 instances. But it does let me know what SQL 2000 servers I have out there, so I’m able to start my migration plans now!

The only major “flaw” I found with SQL Elements is the lack of producing reports based on data collected. Many times, managers and directors require “physical proof” of why I am asking for another terabyte of drive space for a SQL Server. The “powers that be” like pretty graphs and trends. If a drive is running out of space, we need to be able to show them the trend of drive usage so we can justify that new 1.5 terabyte hard drive. Having participated in the beta forums for SQL Elements, I have faith that Idera will listen to the masses and in the future provide some sort of reporting feature. 

I mentioned earlier, that this was a “tease” of a product.  The DBA who uses this product needs to remember that this is not a monitoring tool.  If you are hoping this will provide full SQL monitoring, then you will be disappointed.  For that, I would recommend, Idera SQL Diagnostic Manager. However, if you want a way to know what SQL Instances are in your environment and get a quick overview of your server, then SQL Elements is for you. This is an “Inventory Tool” with some basic monitoring of the most fundamental aspects of a SQL Server: drive size, data integrity, backups, etc. Things that could and will cause major problems if not checked regularly.

This is a very valuable tool for starting DBAs or IT groups that have no clue what they have in their network (which is my group, because we have never had a DBA for our over 100 instances of SQL, before me).  I would definitely recommend this product!  I only hope I can convince my “powers that be” to get it for me! 

SQLBackupAndFTP (a product review)

After reading Pinal Dave blog post on Best Practices to Store the SQL Server Backups, I noticed he mentioned an “easy to use” SQL Backup 3rd party software that allows network storage, even FTP transporting.

So, I thought I would give SQLBackupAndFTP a try.  The download is a relatively small foot-print and installation was a breeze, however I wish there were a x64 bit version.  I know x64 bit machines will run the software, but it is my personal “best practices” to not use x32 bit software with x64 bit machines.

Dave was right, this is most definitely an “easy to use” software.  I can see it coming in real handy with applications that require SQL Express.  With the database sizes (almost 1TB of data on one server) I work with, remote storage and FTP are not a viable option.  Setting up the network storage was a breeze.

I was a little worried when the error message popped up concerning Remote SQL Server backups, especially since it mentioned “beta”.

I believe this would be an excellent development/test environment backup solution because it can be installed on the server and managed on each server.  However, in a production environment with over 90 SQL Servers, a remote backup solution  would be ideal.  I am afraid this would not be the solution.  I could be wrong.  I am a little fearful to place it into production right now.

However, that all being said, I will definitely be putting it to use on my development servers, workstations and test servers.