sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2005 で最もよく使用されるストアド プロシージャのバリエーションを識別する最も簡単な方法

    これにより、最も使用されている上位 50 の proc とその proc 内のステートメントが表示されます。 SQL Server で最も使用されている 50 のストアド プロシージャ

    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
    

    そのリンクにアクセスして、proc 名のみのクエリを取得しますが、proc 内のステートメントも提供されるため、これはより適切なクエリだと思います



    1. Mysql2 ::Error:SQL構文にエラーがあります

    2. Cakephpに複数のテーブルを保存することはできません

    3. GROUPBYおよびORDERBY

    4. Oracle Database12cORA01918および接続エラー