首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgres与Microsoft SQL Server的IX (意图排他性)锁等效/最接近的锁是什么?

Postgres与Microsoft SQL Server的IX (意图排他性)锁等效/最接近的锁是什么?
EN

Database Administration用户
提问于 2021-01-07 10:31:20
回答 1查看 587关注 0票数 0

在Microsoft SQL Server中,下面的代码用于获取IX (意图独占)锁:

代码语言:javascript
复制
SELECT request_mode FROM sys.dm_tran_locks WHERE resource_database_id = DB_ID() AND resource_associated_entity_id = OBJECT_ID(N'dbo.cars');

在PostgreSQL中,pg_locks表可用于告知锁信息。但是,有许多类型的locktype,它们是:

关系、扩展、冻结or、页、元组、事务处理、虚拟page、对象、用户锁或咨询

来自pg_locks的哪些类型的D6等效于来自Microsoft的IX (意图排他)锁?

如果locktype是查看pg_locks的错误列,请建议在pg_locks中使用哪一列?

谢谢

EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-01-07 11:35:00

你需要后退一步,检查一下锁定的目的是什么。

MS的事务锁定在这里有广泛的解释:https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-locking-and-row-versioning-guide

对于PostgreSQL,我们在这里作了广泛的解释-- https://www.postgresql.org/docs/current/mvcc.html

说:

意图锁之所以被命名为意向锁,是因为它们是在较低级别的锁之前获得的,因此表示有意将锁放置在较低的级别。意图锁有两个目的:防止其他事务修改较高级别的资源,从而使较低级别的锁失效。以提高SQL Server数据库引擎在更高粒度级别检测锁冲突的效率。

no与PostgreSQL中的意向锁等效于。IS、IX、6、IU、SIU、UIX锁模式没有等效的效果,因为它们引用的概念是PostgreSQL没有而且似乎不需要的。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/282728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档