I presented on this topic at the TriadSQL User’s Group meeting on 3/26/13. I promised I would post my code/solutions, so here it is. For those that were not able to attend the meeting, here is a brief description of what I am posting.
I am lucky enough to be using SQL Server 2012 in a production environment. Not only do I get to use the database engine, but I also get to use Integration Services (SSIS), Analysis Services (SSAS) and Reporting Services (SSRS).
This post is mostly about SSIS 2012 and the aches and pains it relieves compared to previous versions.
One of the great things about SSIS 2012, is the new project deployment model. Gone is the day when you had to search file servers high and low to figure out where all your SSIS packages lived (if you used file deployment, which I did). Now all your packages are located in one place.
Another great thing about SSIS 2012 is that it has logging built in and the entries all go to one location, so gone is the day when a rogue developer would send his logging to some obscure table in some obscure database on some obscure server never to be seen by anybody ever again.
Where is this magical place you ask? The Integration Services Catalog (ISC), that’s where. The ISC stores your packages along with the metrics for running those packages and sits atop a nice little database called SSISDB.
The ICS also comes with some canned reports for looking at those metrics. The stepping off point is a report called All Executions. It can be viewed by right clicking on your project then selecting Reports | Standard Reports | All Executions. This report is very cool, it provides basic execution information, e.g., how many times it has succeeded, failed, etc. It also provides start times, end times and duration for each package in the project. As I mentioned, it is the stepping off point, it has a section with links to three other reports, Overview, All Messages & Execution Performance.
The Overview report is nice; it shows all the parameter values that were used when the package was executed and some detailed execution information. Definitely comes in handy when troubleshooting.
The All Messages report, is just as it sounds, it shows all the messages that were logged during the execution of the package. Again, good information for troubleshooting.
My favorite is the Execution Performance report. Prior to my first glimpse of this report, I had visions of graphs and KPIs that would rival dancing sugar-plums. Needless to say, I was a little disappointed. Don’t get me wrong, it has a graph on it, but only the last 10 executions are included. There is also a listing of the last 10 execution durations. The thing that gets me is that right above that listing is a three month average and standard deviation. Really, they couldn’t have included those months of data in the graph? But I digress. So I said to myself, “I need more data.” That’s when the light bulb went off and I decided to get more data all on my own.
The SSISDB is easily accessible and easy enough of follow, especially when using the catalog schema and its views. I created some SSRS reports in SQL Server Data Tools and was happy as a clam, until I discovered that the SSMS custom reports don’t support images, drill-down or basically any other kind of interactive-ness. That’s okay, I published the cool reports for the managers to see via the SSRS site and I created a stripped down copy of the reports that I can use within SSMS.
I end up maintaining two code bases, which is kind of a headache, but I work in a small shop where I am the only SQL database related employee, so it’s not that big of a headache. If you work in a larger shop, you may want to figure out some cool PowerShell script that will sync them up.
I hope you find these reports useful and possibly a jumping off point for you to start your own collection of custom reports. I am only providing some of the very basic reports that I created, I wanted to leave some of the creativity to you 😉