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

t-sql クエリの実行にかかる時間を測定する

    上記の回答よりも正確な測定が必要な場合:

    set statistics time on 
    
    -- Query 1 goes here
    
    -- Query 2 goes here
    
    set statistics time off
    

    結果はメッセージに表示されます ウィンドウ。

    更新 (2015-07-29):

    多くのご要望にお応えして、ストアド プロシージャのコンポーネントではなく、ストアド プロシージャ全体の実行時間を計測するために使用できるコード スニペットを作成しました。これは最後の実行にかかった時間を返すだけですが、sys.dm_exec_procedure_stats によって返される追加の統計があります。 それも価値があるかもしれません:

    -- Use the last_elapsed_time from sys.dm_exec_procedure_stats
    -- to time an entire stored procedure.
    
    -- Set the following variables to the name of the stored proc
    -- for which which you would like run duration info
    DECLARE @DbName NVARCHAR(128);
    DECLARE @SchemaName SYSNAME;
    DECLARE @ProcName SYSNAME=N'TestProc';
    
    SELECT CONVERT(TIME(3),DATEADD(ms,ROUND(last_elapsed_time/1000.0,0),0)) 
           AS LastExecutionTime
    FROM sys.dm_exec_procedure_stats
    WHERE OBJECT_NAME(object_id,database_id)[email protected] AND
          (OBJECT_SCHEMA_NAME(object_id,database_id)[email protected] OR @SchemaName IS NULL) AND
          (DB_NAME(database_id)[email protected] OR @DbName IS NULL)
    


    1. MySQLはDATE文字列をDATETIMEフィールドの文字列と比較します

    2. SQLでテーブルに列を追加する

    3. SQL CURSORを使用するときに、これらの間違いを犯しますか?

    4. call_user_func_array()を使用してプリペアドステートメントを動的に構築します