単純なクエリの場合、SNIReadSyncは120〜500ミリ秒で実行されます。何を探しますか?
-
05-07-2019 - |
質問
SQL Server 2005に対して簡単なクエリを実行しています:
protected static void InitConnection(IDbCommand cmd) {
cmd.CommandText = "set transaction isolation level read uncommitted ";
cmd.ExecuteNonQuery();
}
dotTrace 3.1でプロファイルを作成するたびに、SNIReadSyncメソッドが100〜500ミリ秒かかっていると主張します。
この時間を短縮するには、どのようなものを探す必要がありますか?
ありがとう!
解決
テストしていませんが、IsolationLevel.ReadUncommittedのオプションでTransactionScopeを使用した場合、同じ問題があるかどうか疑問に思います。呼び出しの完全なセットをカプセル化する必要があり、このステートメントの必要性を無効にする必要があります。この声明はあなたの基本的な関心事ではなく、一般的なことです。
もう1つできることは、DBConnectionScopeクラスを作成する(または信頼できるベンダーのクラスを活用する)ことで、開かれる接続の総数を削減することです。
他のヒント
接続プーリングが有効になっていることを確認してください。有効にしないと、接続が開かれるたびに重大なペナルティが発生します。接続文字列でPooling = Trueを設定するか、プーリングへの参照を削除します。デフォルトが有効になっていると思います。
これで問題が解決しました。あなたや他の人に役立つことを願っています。
所属していません StackOverflow