Friday, February 25, 2011

The SQL MCM Might Not Be For Me



I've been thinking a lot about the Microsoft Certified Master Certification recently, trying to decide if it's worth it.

On one hand, I really like being identified as a smart guy, and perhaps MCM will help that effort. I can picture it now - I walk into SQL Pass, standing proud and tall in my scottish kilt, legs hairy, smiling brightly...and I hear hushed whispers of "There's Ike...the Microsoft Certified Master." Reverence on their faces as I stride into the room...right up to the point where I trip, legs sprawling and they realize I'm wearing that kilt as a true scotsman.

Also, I seem to learn better when I have a goal. It gives the learning purpose, context, and urgency, which I (and many people) require in order to learn.

On the other hand, my clients do not care about this certification. I doubt I would ever even mention it. My clients are not SQL DBAs. They are corporations and institutions that don't have great SQL knowledge in-house. Some of them are large software companies that just haven't found the right SQL resource. They've never heard of MCM and therefore, wouldn't add to my bill rate by a single dollar. MCM = time-consuming = expensive and <> cost-justified. Basically, I'd be going against the advice I constantly give my customers. If it doesn't make you more money, it's not worth it.

My clients employ me for one basic reason. I'm always concerned about their profitability, efficiency, and productiveness. Getting better at making them money will make me more money. I'm unconvinced that MCM helps me achieve that.

Is ego enough of a reason to pursue this?

EDIT - 3/31/2011: Joe Sack, acting PM for MCM:SQL, has been talking to me about this post for quite some time. He gave me the details of a study done to prove the value of MCM...the non-ego-driven value. Here is a link to the study:

http://download.microsoft.com/download/7/9/5/795B3672-1B65-49DE-9180-7B7BEB0E1F52/MCM_Research_and_Evidence.pdf

Looks like my SQL MCM journey is going to begin today.

Tuesday, February 15, 2011

Thursday, February 10, 2011

SSRS 2008 Execution Log - Report Auditing

I wrote this query to tell me how many times a report gets excecuted, who ran it last, and when it was ran last. It's a simple, but effective query:


USE reportserver;

WITH LastExecution
AS
(
  
SELECT e.ReportID
      
,  MAX(e.timestart) AS LastExecution
      
FROM ExecutionLog  e
      
GROUP BY e.ReportID
)
,
ExecutionCount
AS
(
  
SELECT e.ReportID
      
,  COUNT(*) AS ExecutionCount
      
FROM ExecutionLog  e
      
GROUP BY e.ReportID
)
SELECT c.Path
  
, c.Name
  
, le.LastExecution
  
, ec.ExecutionCount
  
, e.UserName AS LastExecutingUser
  
FROM ExecutionLog e
  
JOIN Catalog c
      
ON e.ReportID = c.ItemID
  
JOIN LastExecution le
      
ON e.ReportID = le.ReportID AND e.TimeStart = le.LastExecution
  
JOIN ExecutionCount ec
      
ON e.ReportID = ec.ReportID;