设置Microsoft.Practices.EnterpriseLibrary的默认隔离级别

时间:2009-09-30 03:59:58

标签: sql .net-3.5 enterprise-library transaction-isolation

我有一个.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

1 个答案:

答案 0 :(得分:1)

我假设您正在使用SQL Server?

尝试在数据库上设置 READ COMMITTED SNAPSHOT

有关详细信息,请参阅此处:

http://www.codinghorror.com/blog/archives/001166.html