sql >> Database >  >> RDS >> Sqlserver

Snelste manier om de meest gebruikte Stored Procedure-variatie in SQL Server 2005 te identificeren

Dit geeft je de top 50 meest gebruikte proc's en de verklaringen in de proc's, vanaf hier:Display de 50 meest gebruikte opgeslagen procedures in SQL Server

SELECT TOP 50 * FROM(SELECT COALESCE(OBJECT_NAME(s2.objectid),'Ad-Hoc') AS ProcName,
  execution_count,s2.objectid,
    (SELECT TOP 1 SUBSTRING(s2.TEXT,statement_start_offset / 2+1 ,
      ( (CASE WHEN statement_end_offset = -1
  THEN (LEN(CONVERT(NVARCHAR(MAX),s2.TEXT)) * 2)
ELSE statement_end_offset END)- statement_start_offset) / 2+1)) AS sql_statement,
       last_execution_time
FROM sys.dm_exec_query_stats AS s1
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 ) x
WHERE sql_statement NOT like 'SELECT * FROM(SELECT coalesce(object_name(s2.objectid)%'
and OBJECTPROPERTYEX(x.objectid,'IsProcedure') = 1
and exists (SELECT 1 FROM sys.procedures s
WHERE s.is_ms_shipped = 0
and s.name = x.ProcName )
ORDER BY execution_count DESC

Bezoek die link om alleen de query voor de proc-naam op te halen, maar ik denk dat dit een betere query is omdat het je ook de instructies in de proc's geeft



  1. Voeg een lege string in de INT-kolom voor SQL Server in

  2. tel meerdere kolommen in één zoekopdracht

  3. Oracle - Maak alleen een index als deze niet bestaat

  4. Zijn MySQL in-memory tabellen wereldwijd?