Sql server SQL Server/ADO.NET:锁定问题
我知道这是一个非常模糊的问题,所以请原谅我 我曾经工作过的一家公司联系我说,自从他们升级到SQLServer2008后,他们遇到了大量的“锁定”问题 我真的不知道这是什么意思。我甚至不知道如何在SQLServer中看到这些“锁定”错误。这不是我的专长领域 一个不再在那里工作的DBA处理SQL Server的东西,我的程序可能每天向他们的数据库写入100000条记录 就在我离开之前,我将所有数据层代码从ADO.NET SqlCommand存储过程更改为LINQ到SQL 有人知道我从哪里开始帮助他们吗?我没有得到报酬,只是想帮助一家苦苦挣扎的初创公司Sql server SQL Server/ADO.NET:锁定问题,sql-server,locking,Sql Server,Locking,我知道这是一个非常模糊的问题,所以请原谅我 我曾经工作过的一家公司联系我说,自从他们升级到SQLServer2008后,他们遇到了大量的“锁定”问题 我真的不知道这是什么意思。我甚至不知道如何在SQLServer中看到这些“锁定”错误。这不是我的专长领域 一个不再在那里工作的DBA处理SQL Server的东西,我的程序可能每天向他们的数据库写入100000条记录 就在我离开之前,我将所有数据层代码从ADO.NET SqlCommand存储过程更改为LINQ到SQL 有人知道我从哪里开始帮助他们
我该如何开始对此进行故障排除?您只能从更准确地描述他们看到的问题开始,以及他们报告的“锁定”是他们报告的问题还是他们认为他们遇到的问题 在明确问题在系统中的哪个层次产生之前,甚至不可能开始尝试寻找答案 就“看到”锁定问题而言,SQLServerManagementStudio中的活动管理器(或2k8中的任何一个)将在一定程度上显示锁定,但事实上,这比您目前的位置提前了一步 现在的关键问题是他们看到的错误到底是什么,发生在哪里。应该与SQL 2008一起使用 我知道作者也有类似的问题,
我只想告诉他们安装MS SQL 2008 SP1和大多数修补程序。总有一种情况,我们必须将SELECT语句与with(无锁)一起使用,但在敏感环境中不建议这样做,因为它支持脏读(未提交的依赖项)。但是大多数死锁问题都发生在更新操作期间,因此您应该更好地关注系统中的更新语句。我建议您使用UPDATE with ROWLOCK命令,这样SQL Server将只锁定表的一行,而不是锁定整个表锁或页面锁 您有性能问题和死锁这一事实可能是一个更严重问题的指标。例如,如果SQL Server没有为查询找到合适的索引,它将进行完整的表或索引扫描,而不是范围扫描;强制它使用Tablock而不是Paglock