(C#/ Linqを使用して)データインポートを実行していますが、当然、クエリを可能な限り最適化しようとしています。この目的のために、SQL Server Profilerを使用してDBでトレースを実行し、SQLログイン名(データインポートプロセスに一意に関連付けられる名前です)でフィルタリングします。
奇妙なことに、私のSQLステートメントのほとんどは本当に速いです:)-1msのマークを超えるクエリはほとんどありません。しかし、すべてのクエリ間には、EventClassが「Audit Login」または「Audit Logout」である複数の行があります。「Audit Logout」の期間は最大1分です。
これは、インポートでトランザクションを使用しているという事実と関係がありますか?もしそうなら、私はそれらをクリーンアップできるように、大きなヒットクエリであるかを見つける方法はありますか?
正しいことを覚えている場合、監査ログアウトの期間は、接続が開いていた時間です。例えば。コマンドの速度とは関係ありません-ログインが「ログイン」された時間だけです。
ログイン/ログアウトイベントは、セットアップ/破棄に関連しています。 IIRCの時間は、他のログイベントの場合のように処理時間とは対照的に、「一定時間ログインした」時間です。
一般に、接続プールの管理などに問題があると思われる場合を除き、これらのイベントを非表示にします。
バッチの生の時間は、トランザクションなどの影響を含め、実際のアクティビティにかかっている時間を診断するのに十分でなければなりません。
Audit Logoutイベントクラスは、ユーザーがMicrosoft SQL Serverからログアウト(ログオフ)したことを示します。このクラスのイベントは、新しい接続によって、または接続プールから再利用される接続によって起動されます。
アイドル時間を含め、接続にログインした合計時間であるため、パフォーマンスの問題を示すものではありません。また、ログイン/ログアウトのプロファイリングがパフォーマンスの問題を引き起こすことはほとんどありません。パフォーマンスの低いクエリ、おそらく実行時間の長いクエリを探す方が良いでしょう。
詳細については https://msdn.Microsoft.com/en-us/library/ms175827.aspx :)
この回答 のように注意する価値もあります。ログイン/ログアウトの監査は、接続が接続プールから再利用されていることを意味する場合があります。