我有一个.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中的配置设置,但是无法弄清楚它是什么,或者我是否在正确的轨道上。
非常感谢任何帮助。
干杯Amjid
答案 0 :(得分:1)
我假设您正在使用SQL Server?
尝试在数据库上设置 READ COMMITTED SNAPSHOT 。
有关详细信息,请参阅此处: