手順で次のクエリを使用すると、データベースへの接続をカウントできます
SELECT
COUNT(dbid) as 'Total Connections'
FROM
master.dbo.sysprocesses WITH (nolock)
WHERE
dbid = 7
これは正常に機能していますが、すべての接続/セッションの長さを分単位で取得する方法はありますか?
手順で次のクエリを使用すると、データベースへの接続をカウントできます
SELECT
COUNT(dbid) as 'Total Connections'
FROM
master.dbo.sysprocesses WITH (nolock)
WHERE
dbid = 7
これは正常に機能していますが、すべての接続/セッションの長さを分単位で取得する方法はありますか?
これを行う場合:
SELECT DATEDIFF(n, login_time, GETDATE()) AS SessionTime
FROM master.dbo.sysprocesses WITH (nolock)
WHERE dbid =7
と現在の時間差がlogin_time
分単位で表示されます。これはセッション時間だと思います。
これに注意してください:
戻り値がintの範囲外(-2,147,483,648〜 + 2,147,483,647)の場合、エラーが返されます。ミリ秒の場合、開始日と終了日の最大差は24日、20時間、31分、23.647秒です。第二に、最大の差は68年です。
ここから:http://msdn.microsoft.com/en-us/library/ms189794.aspx
注:すぐにオーバーフローする可能性が低い接続された分を要求しているので、大丈夫です!