gpt4 book ai didi

SQL Server NOLOCK 和联接

转载 作者:行者123 更新时间:2023-12-01 16:40:09 24 4
gpt4 key购买 nike

背景:我想运行一个对性能至关重要的查询,并且我不关心脏读。

我的问题是;如果我使用连接,我是否还必须在这些连接上指定 NOLOCK 提示?

例如;是:

SELECT * FROM table1 a WITH (NOLOCK)
INNER JOIN table2 b WITH (NOLOCK) ON a.ID = b.ID

相当于:

SELECT * FROM table1 a WITH (NOLOCK)
INNER JOIN table2 b ON a.ID = b.ID

或者我是否需要在连接上指定 (NOLOCK) 提示以确保我不会锁定连接表?

最佳答案

我不会解决READ UNCOMMITTED论点,只是解决你原来的问题。

是的,您需要在连接的每个表上使用WITH(NOLOCK)。不,您的查询不一样。

尝试这个练习。开始事务并向 table1 和 table2 中插入一行。暂时不要提交或回滚事务。此时,您的第一个查询将成功返回并包含未提交的行;您的第二个查询不会返回,因为 table2 上没有 WITH(NOLOCK) 提示。

关于SQL Server NOLOCK 和联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3783525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com