獲取sql執行時間

2021-09-24 20:22:31 字數 2291 閱讀 4126

sql server中獲取要執行的sql或sql塊的執行時間,方法之一如下:

declare

@begin

datetime,@end

datetime

set@begin

=getdate

()--

your sql

set@end

=getdate

()print

datediff(millisecond, @begin, @end)/

1000.0

--單位:s

declare

@begin

datetime,@end

datetime

set@begin

=getdate

()select

getdate

()set

@end

=getdate

()print

datediff(millisecond, @begin, @end)/

1000.0

--單位:s

執行結果截圖如下:

在訊息中,可見執行getdate()方法的時間是極短,可以忽略不計!

下面,以查詢我本地的[user]表為例進行測試:

執行後的當前時間減去執行前的當前時間,即為sql或sql塊的執行用時。

專案中,程式想拿到這個時間,只需把這個sql塊封裝成乙個儲存過程,儲存過程有乙個output引數,

把最後一行的print換成賦值給output輸出引數即可。

儲存過程如下:

create

procedure

getexecutetimeproc

@executetime

decimal(18,3

) output as

begin

declare

@begin

datetime,@end

datetime

set@begin

=getdate

()

select

*from

[user

]waitfor delay'

00:00:5'--

暫停5秒,模擬查詢

set@end

=getdate

()

set@executetime

=cast((datediff(millisecond, @begin, @end)/

1000.0) as

decimal(18,3))

endgo

測試demo**:

static

void main(string

args)

};datatable dt = dbhelper.executeselect(sql, parameters,commandtype.storedprocedure).tables[0

];

decimal executetime = convert.todecimal(parameters[0

].value);

int rowcount = 0

;

if (dt != null

)

console.writeline(

"一共有行資料\n查詢耗時秒

",rowcount,executetime);

console.readkey();

}

dbhelper類:

public

class

dbhelper

}sqldataadapter sda=new

sqldataadapter(cmd);

sda.fill(ds);

}catch

(exception ex)}}

return

ds; }

}

view code

執行截圖:

獲取sql執行時間

sql server中獲取要執行的sql或sql塊的執行時間,方法之一如下 declare begin datetime,end datetime set begin getdate your sql set end getdate print datediff millisecond,begin,...

獲取sql執行時間

sql server中獲取要執行的sql或sql塊的執行時間,方法之一如下 declare begin datetime,end datetime set begin getdate your sql set end getdate print datediff millisecond,begin,...

獲取程式執行時間

獲取程式執行時間,對程式效能進行度量。include double start clock 段 system 程式名.exe 僅對於dos double end clock double time double end begin clocks per sec 1000 ms include dwo...