sql-server – SQL Server中的默认锁粒度是什么?

前端之家收集整理的这篇文章主要介绍了sql-server – SQL Server中的默认锁粒度是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经彻底阅读了 MSDN about table hints,我似乎没有找到锁定粒度默认值.假设我有以下查询
SELECT TOP (1) * FROM MyTable WITH (UPDLOCK,READPAST) ORDER BY SomeColumn ASC;

你看,我指定了UPDLOCK和READPAST提示,但没有指定任何粒度提示,如TABLOCK或ROWLOCK.

默认情况下使用哪种粒度锁定级别?

解决方法

没有’默认’.粒度(行,页面,(分区|对象))是根据对象的允许选项(allow_page_locks / allow_row_locks)动态计算的,有关操作意图(探测,扫描,插入)的信息,行集的估计大小和其他因素的数量(隔离级别,只读文件组等).在大多数情况下,您将获得单件操作的行级粒度和扫描的页级粒度.您发布的查询可能会采用页面级粒度,因为它是扫描.

猜你在找的MsSQL相关文章