sql >> Databáze >  >> RDS >> Sqlserver

Nejrychlejší způsob, jak identifikovat nejpoužívanější variantu uložené procedury v SQL Server 2005

Získáte tak 50 nejpoužívanějších procesů a prohlášení v těchto procesech:Zobrazit 50 nejpoužívanějších uložených procedur v 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

Navštivte tento odkaz a vezměte dotaz pouze na název procesu, ale myslím, že je to lepší dotaz, protože vám také poskytuje příkazy v procesu



  1. Jak vybrat id s maximální skupinou data podle kategorie v dotazu Ecto s Phoenix?

  2. Jak získat data z propojených serverů pomocí dotazů

  3. mysql spojuje tabulky a vytváří chybějící data

  4. Problémy se zobrazováním japonských znaků pomocí PHP a MySQL