sql-server – SQL Server中的默认锁粒度是什么?
发布时间:2020-12-12 07:48:46 所属栏目:MsSql教程 来源:网络整理
导读:我已经彻底阅读了 MSDN about table hints,我似乎没有找到锁定粒度默认值.假设我有以下查询: SELECT TOP (1) * FROM MyTable WITH (UPDLOCK,READPAST) ORDER BY SomeColumn ASC; 你看,我指定了UPDLOCK和READPAST提示,但没有指定任何粒度提示,如TABLOCK或ROWL
我已经彻底阅读了
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)动态计算的,有关操作意图(探测,扫描,插入)的信息,行集的估计大小和其他因素的数量(隔离级别,只读文件组等).在大多数情况下,您将获得单件操作的行级粒度和扫描的页级粒度.您发布的查询可能会采用页面级粒度,因为它是扫描.(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |