Microsoft.Practices.EnterpriseLibrary を使用して、何千もの異なるストアド プロシージャを呼び出す .net 3.5 Web サイトがあります。
多くのタイムアウトが発生しており、いくつかのプレイとテストの後、ストアド プロシージャのテーブル ジョインの最後で (nolock) を使用すると、非常にうまく機能し、タイムアウトが減少します。
これをすべてのspsに実行したいと思います。すべてのテーブル名に (nolock) を追加することもできますが、SQL で "SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED" を使用して分離レベルを設定することをお勧めします。
これをすべてのspの最初に追加したくないので(非常に多いため)、接続に追加する方法を探していました。
sp を呼び出すコードの例は次のとおりです。
public static int ExecuteNonQuery(string sStoredProcedureName, params object[] parameterValues)
{
Data.Database db = Data.DatabaseFactory.CreateDatabase();
using (DbCommand command = db.GetStoredProcCommand(sStoredProcedureName, parameterValues))
{
return db.ExecuteNonQuery(command);
}
}
この設定は web.config の構成設定であると考えていますが、それが何であるか、または正しい軌道に乗っているかどうかはわかりません。
どんな助けでも本当に感謝しています。
乾杯アムジド