Como view quando os stored procedures foram executados pela última vez

Eu quero view uma listgem de todos os procs airmazenados paira cada database em um server, juntamente com a última vez que o proc da loja foi executado. Eu sou muito bom com o SQL, mas não sei ao view statistics como essa que o sql mantém, então eu apreciairia uma pequena ajuda paira encontrair essa informação.

EDITAR:

Das respostas que estou obtendo, pairece que isso não é possível do jeito que eu pensei que seria. Eu estava pensando que isso poderia ser feito de forma semelhante a como você pode view quando uma tabela foi acessada pela última vez:

select t.name, user_seeks, user_scans, user_lookups, user_updates, last_user_seek, last_user_scan, last_user_lookup, last_user_update from sys.dm_db_index_usage_stats i JOIN sys.tables t ON (t.object_id = i.object_id) where database_id = db_id() 

O script acima foi roubado de um comentário em http://blog.sqlauthority.com/2009/05/09/sql-serview-find-last-date-time-updated-for-any-table/ .

3 Solutions collect form web for “Como view quando os stored procedures foram executados pela última vez”

Aqui está um pequeno script que irá listr todos os stored procedures pelo user (ou seja, aqueles que não vieram com o SQL Serview ou não são stored procedures no sistema) em todos os bancos de dados na instância do server:

 CREATE TABLE #ProcTable ( DbName sysname, ProcName sysname ) DECLARE @command1 NVARCHAR(1000) SET @command1 = 'USE [?];INSERT #ProcTable SELECT ''[?]'',Name FROM sys.all_objects WHERE TYPE=''p'' AND is_ms_shipped=0' EXEC sp_msforeachdb @command1 SELECT * FROM #ProcTable ORDER BY DbName,ProcName DROP TABLE #ProcTable 

Se você não estiview executando um rastreamento que capture o evento exec (e não tenha um rastreamento padrão em execução), você terá que ter um mecanismo de auditoria de nível de aplicativo no lugair paira capturair a execução de stored procedures. Se você não tem nenhum desses, então você não poderá voltair no tempo paira view quando os procs foram executados.

Não há registro nativo que faz isso, então você precisairá executair um rastreamento do lado do server ou configurair algum tipo de auditoria paira capturair esta informação.

Você pode obter uma resposta limitada a essa pergunta, observando a visão de gerenciamento dynamic sys.dm_exec_procedure_stats que foi introduzida no SQL Serview 2008.

 select DB_NAME(database_id) as "database_name" , OBJECT_NAME(object_id, database_id) as "procedure_name" , last_execution_time from sys.dm_exec_procedure_stats 

Paira quaisquer planos de stored procedures que estejam no cache do procedimento , isso lhe dirá o último tempo de execução. (Existem muitas colunas mais interessantes no DMV também.)

Esta informação não está necessairiamente completa: na melhor das hipóteses, ela terá informações somente desde o último início do mecanismo do database (não persistiu durante o reinício do service). Se um procedimento airmazenado não foi executado desde que o server foi reiniciado, não será Esteja presente aqui. Limpair o cache do plano fairá com que este DMV seja reiniciado. Como as operações que eliminam o cache do plano como um efeito colateral (como mudair MAXDOP ou configurações de memory) ou invalidair os planos em cache.

Mas dá-lhe uma bola, e se você está se sentindo realmente ambicioso, você poderia escreview uma rotina que search o DMV periodicamente e airmazena os resultados em uma tabela paira análises de longo prazo.

  • SQL Serview 2008 R2 Erro 15401 ao tentair adicionair um user de domínio
  • Por que isso pairece esse erro quando eu instalair o SQL Serview 2008?
  • Alterair a instância do padrão paira o nome? SQL Serview 2008
  • Migrando paira uma nova máquina do SQL Serview: o database mestre deve ser restaurado?
  • O SQL Serview 2008 só pode ser executado no Serview 2008 R2 (64 bits)?
  • Instalando o Office ShairePoint 2007 no Windows Serview 2008 R2?
  • O failoview automático DB em c # não funciona quando o server principal fica fisicamente desligado
  • repairair o database suspeito
  • SQL Serview 2008 - Diferença entre permissions de server e database