Which SQL Server Stored Procedures have been executed

In SQL Server version 2000 or 2005,  is there a way I can determine which stored procedures in a database  have been executed over the past 6 months, or alternatively, is there something I can do (without modifying the stored procedures themselves) to determine which stored procedures have been executed over the next month  ?  
vdAsked:
Who is Participating?
 
RimvisCommented:
No, you can't immediately detect, what SPs weren't executed over last 6 moths, one month or whatever.
At first,  cached plans (from SYSCACHEOBJECTS) must be cleared. Now, if SP was executed, there is a record in SYSCACHEOBJECTS. After a month, you could check SYSCACHEOBJECTS. If there's no record for some SP, it wasn't executed. It looks simple to me, unless I'm missing something.

>>What about sp's that have been deleted
Well, then you can't detect, if it was ever executed or not. But I don't this it is a big problem.

0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
unless you put in place a change in the procedure OR put in place a trace, there is no way to know.
0
 
Racim BOUDJAKDJIDatabase Architect - Dba - Data ScientistCommented:
<<In SQL Server version 2000 or 2005,  is there a way I can determine which stored procedures in a database  have been executed over the past 6 months, or alternatively, is there something I can do (without modifying the stored procedures themselves) to determine which stored procedures have been executed over the next month  ?>>
No.
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
RimvisCommented:
Yes you can
         
Identifying Unused Objects in a Database
http://www.sqlservercentral.com/columnists/lPeysakhovich/2582.asp
0
 
Racim BOUDJAKDJIDatabase Architect - Dba - Data ScientistCommented:
<<Yes you can>>
What does identifying *unused* objects with identifying *all* procedures used over a period of time?  Are you saying that *all* procedures are *unused*?

0
 
Racim BOUDJAKDJIDatabase Architect - Dba - Data ScientistCommented:
Sorry typo, I of course meant
What does identifying *unused* objects has to do with identifying *all* procedures used over a period of time?
0
 
RimvisCommented:
Did you read the article?
No, there is no "SELECT * FROM sysunusedproc"
It describes a way of detecting unused SPs based on cached execution plan.
0
 
Racim BOUDJAKDJIDatabase Architect - Dba - Data ScientistCommented:
<<<Did you read the article?>>
Yes and I did not find any answer to the question I have tried to raise.  

<<It describes a way of detecting unused SPs based on cached execution plan. >>
No doubt about that but it seems to me that the question is *is there a way I can determine which stored procedures in a database  have been executed over the past 6 months* .  How does that relate to unused SP's.  Are you suggesting that an unused proc is *de facto* the opposite of historically used sp's?  What about sp's that have been deleted?

Trying to understand what you're trying to get at...

Regards...
0
 
Racim BOUDJAKDJIDatabase Architect - Dba - Data ScientistCommented:
<<No, you can't immediately detect, what SPs weren't executed over last 6 moths, one month or whateve>>
But the point is to detect that *were* executed in the past *6 monthes* *not* just the sp's that were executed in the past month and the one that were recorded.  What gives you the guarantee for instance that the cache was not cleared?  what if some sp's became obsolete...
 
<<No, you can't immediately detect, what SPs weren't executed over last 6 moths, one month or whatever.
At first,  cached plans (from SYSCACHEOBJECTS) must be cleared. Now, if SP was executed, there is a record in SYSCACHEOBJECTS. After a month, you could check SYSCACHEOBJECTS. If there's no record for some SP, it wasn't executed. It looks simple to me, unless I'm missing something.>>
Let me get this straight.  You are basically saying that the syscacheobjects system tells what sp were ran in the last month from the time the cash was cleared.  Right?  

But the question states that the user wants to find out what procedures were executed in the past *6 monthes* which makes a huge difference between what you can achieve through the suggested method.  

<<It looks simple to me, unless I'm missing something.>>
I think it looks simple only to you ;)

I believe the method suggested may help get some information but I am not convinced it answers the question.  So for the moment I'd stick to what angelII and I said. (meaning there is no way to do it unless done with explicit logging)

Regards...
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.