我有一个 .net 3.5 网站,它使用 Microsoft.Practices.EnterpriseLibrary 调用数千个不同的存储过程。
我们遇到了很多超时,经过一些游戏和测试,在存储过程中表连接的末尾使用 (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 中的配置设置,但无法弄清楚它是什么,或者我是否在正确的轨道上。
非常感谢任何帮助。
干杯阿姆吉德