title: TSQL query to find un-used stored procedures
body: <p>I am trying to track down all stored procedures in a database that have never been used, or that have not been used in many months.</p>
  
  <p>I would like to find a query to show all the stored procedures that are not in use so that those stored procedures can be analyzed to determine if they can be removed.</p>
  
  <p>I am familiar with sys.procedures, but don't know how to determine if a procedure is in use or not.</p>
  
  <pre><code>SELECT *
  FROM sys.procedures;
  </code></pre>
  
  <p>Using SQL Server 2008 R2.</p>
  
  <p><strong>UPDATE UPDATE UPDATE</strong></p>
  
  <p>Using the query from Aaron Bertrand below, slightly modified, this is what I ended up using, and it was perfect.</p>
  
  <pre><code>SELECT p.*
    FROM sys.procedures AS p
    LEFT JOIN sys.dm_exec_procedure_stats AS s ON s.[object_id] = p.[object_id]
   WHERE s.object_id IS NULL;
  </code></pre>
  
  <p>Thanks for the hlep.</p>