gpt4 book ai didi

SQL Server 选择查询锁定插入。为什么?

转载 作者:行者123 更新时间:2023-12-04 21:06:56 25 4
gpt4 key购买 nike

我在 SQL Server 2008 R2 上执行了两个没有显式事务的 SQL 选择查询

查询 1:

SELECT * 
FROM MyTable
WHERE Field1 = 'XXX' AND Field2 = 'YYY'

查询 2:

SELECT * 
FROM MyTable
WHERE Field1 = N'XXX' AND Field2 = N'YYY'

“查询 2”比“查询 1”快,但是当“查询 2”运行时我无法在“MyTable”上写入(INSERT)新记录...“MyTable”似乎锁定。相反,当“查询 1”运行时,我可以安静地添加新记录。

注意:“MyTable”有一个聚簇复合键(两列)和其他INDEXES。

你能解释一下为什么会出现这种行为吗?

谢谢。

最佳答案

使用 ALTER/CREATE INDEX 的 ALLOW_PAGE_LOCKS 子句:

ALTER INDEX indexname ON tablename SET (ALLOW_PAGE_LOCKS = OFF);

关于SQL Server 选择查询锁定插入。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36797927/

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