単純なクエリの場合、SNIReadSyncは120〜500ミリ秒で実行されます。何を探しますか?

StackOverflow https://stackoverflow.com/questions/1610874

  •  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を設定するか、プーリングへの参照を削除します。デフォルトが有効になっていると思います。

これで問題が解決しました。あなたや他の人に役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top