0

SQL Server 2008 R2でトランザクションの実行時間を取得したいのですが、この時間をプログラムで取得してテーブルに保存したいと思います。どうすればいいですか?

4

3 に答える 3

7

クエリの前後の時間を節約し、差を計算するには、次のようにします。

DECLARE @start_time DATETIME, @end_time DATETIME
SET @start_time = CURRENT_TIMESTAMP

 -- query goes here

SET @end_time = CURRENT_TIMESTAMP
SELECT DATEDIFF(ms, @start_time, @end_time)
于 2012-07-13T17:00:51.737 に答える
4

「SETSTATISTICSTIMEON;」を実行してみてください。トランザクションを実行する前に接続で。

于 2012-07-13T16:51:44.437 に答える
2

JohnCは正しいです、そしてそれはおそらくあなたが望むものです。

ただし、正確なニーズに応じて、他のオプションがあります。1つは、SSMSは、クエリを実行したときに右下の隅に渡された時間(少なくとも1秒まで)を示します。

そしてもちろん、getdate()を使用して、実行の直前と直後のSQL Serverから時刻を取得し、違いを見つけます。

多数のクエリを繰り返しテストする場合は、timeitなどのライブラリを使用してPythonなどの他の言語でテストハーネスを作成することもできます。

于 2012-07-13T17:01:12.090 に答える