我对 SQL Server 2008 有一个查询,当使用 sp_whoisactive with get_locks = 1 时,以下锁打开了....
<Object name="my_table" schema_name="dbo">
<Locks>
<Lock resource_type="KEY" index_name="pk_mypk" request_mode="X" request_status="GRANT" request_count="1" />
<Lock resource_type="OBJECT" request_mode="IX" request_status="GRANT" request_count="1" />
<Lock resource_type="PAGE" page_type="*" index_name="pk_mypk" request_mode="IX" request_status="GRANT" request_count="1" />
</Locks>
</Object>
我了解密钥和页面锁,但不确定对象是什么。那是表锁吗?如果是这样,为什么还要费心去锁定密钥和页面锁呢?有没有办法弄清楚为什么只接触一小部分行的特定查询会使用表锁,我猜这是锁升级。