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)动态计算的,有关操作意图(探测,扫描,插入)的信息,行集的估计大小和其他因素的数量(隔离级别,只读文件组等).在大多数情况下,您将获得单件操作的行级粒度和扫描的页级粒度.您发布的查询可能会采用页面级粒度,因为它是扫描.

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03