sha*_*oth 6 sql-server locking granularity sql-server-2008 database-locking
我已经彻底阅读了关于表提示的MSDN,我似乎没有找到默认的锁定粒度.假设我有以下查询:
SELECT TOP (1) * FROM MyTable WITH (UPDLOCK, READPAST) ORDER BY SomeColumn ASC;
Run Code Online (Sandbox Code Playgroud)
你看,我指定UPDLOCK
和READPAST
提示,但没有任何粒度提示,如TABLOCK
或ROWLOCK
.
默认情况下使用哪种粒度锁定级别?
Rem*_*anu 16
没有'默认'.粒度(行,页,(分区|对象))被计算动态基于针对所述对象(allow_page_locks/ALLOW_ROW_LOCKS),有关操作意图信息(探针,扫描,插入),行集的估计大小和允许的选项其他因素的数量(隔离级别,只读文件组等).在大多数情况下,您将获得单件操作的行级粒度和扫描的页级粒度.您发布的查询可能会采用页面级粒度,因为它是扫描.
归档时间: |
|
查看次数: |
5098 次 |
最近记录: |