为Microsoft.Practices.EnterpriseLibrary设置默认隔离级别
我有一个.net 3.5网站,它使用Microsoft.Practices.EnterpriseLibrary调用数千个不同的存储过程。为Microsoft.Practices.EnterpriseLibrary设置默认隔离级别
我们已经获得了很多超时时间,并且在一些播放和测试后,在表的末尾使用(nolock)连接存储过程可以很好地工作并减少超时。
我想现在就对所有的sps做这个。我可以添加(nolock)到所有表名,但是更好的办法是使用SQL设置隔离级别“SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED”
我不想把这个添加到所有sp的开始处(as有这么多),所以正在寻找一种方式将其添加到连接。
的代码示例调用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一个配置设置,但无法弄清楚它是什么,或者如果我在正确的轨道上。
任何帮助真的很感激。
Cheers Amjid
我假设您使用的是SQL Server?
尝试设置在数据库上的READ COMMITTED SNAPSHOT。
在这里看到更多的信息:与解决方案
抱歉,迟到的回复。这工作完美。它可以在你的主板上工作,除了删除已经放入的(noLock)之外,根本不需要任何代码更改。 欢呼声 – 2009-10-01 04:12:36
hmmmm yes ... yes yes当然,确实如此 – Scozzard 2010-01-26 21:52:58
任何样品完整的代码? – Kiquenet 2010-07-20 19:49:00