sql-server – 增加的网络延迟会导致MS SQL Server中的表锁吗?
|
如果我通过高延迟网络对SQL Server数据库进行单次调用,是否会因延迟而发生表锁定?假设我查询表A以获取某些记录,并且SQL Server必须通过慢速网络返回该数据 – 当服务器通过网络发送响应时,表A上是否存在读锁定,或者SQL Server是否在发送之前释放锁定响应? 此外,答案会根据答复的大小而有所不同吗?如果它只需要返回几KB到几百MB,那会有所作为吗? 创建显式事务,运行查询和关闭事务显然会导致表锁定,因为事务的持续时间与我的延迟相关. 解决方法
这不准确,它取决于隔离级别. 在默认情况下,READ COMMITTED锁定在语句执行期间不会保留. READ COMMITTED不提供语句级读取一致性,唯一的保证是您无法读取未提交的数据.获取并保持共享锁以读取该行然后释放. 除非你有LOB类型. LOB类型可能非常大,无法缓冲.必须获取并保持共享锁,直到语句完成,基本上在READ COMMITTED处给出REPEATABLE READ行为.
延迟不会导致表锁定,不会.但是,如果已获取表锁,延迟将延长它. 引用一个比我更了解这种机制的人(@RemusRusanu):
如果结果没有像SQL Server提供的那样快速消耗,无论是客户端还是网络,我们都会看到ASYNC_NETWORK_IO等待累积.重申一下,这不会影响所获得的锁,只会影响它们的持续时间. (编辑:天瑞地安资讯网_瑞安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server-2008-r2 – 定义计算列引用另一个表
- SQL中的参数 – Delphi 7
- sql-server – 为什么在我的测试用例中,顺序GUID键的执行速
- sql-server – 来自sql server的高磁盘I / O还是高磁盘I /
- iSeries DB2 – SQL GUI工具
- sql-server-2005 – 用户定义的函数输出进行Nhibernate过滤
- sql-server – 规划缓存大小和保留内存
- sql – ORA-22905 – 使用select语句查询表类型时
- ssis延迟验证方法是什么?一文带你看懂
- sql-server-2008 – 在EF4中控制ArithAbort

