小编Lel*_*son的帖子

解决仅通过索引视图相关的 2 个表的死锁

我遇到了陷入僵局的情况,我想我已经缩小了罪魁祸首的范围,但我不太确定我能做些什么来解决它。

这是在运行 SQL Server 2008 R2 的生产环境中进行的。

为了让您稍微简化一下情况:


我有 3 个表,定义如下:

TABLE activity (
    id, -- PK
    ...
)

TABLE member_activity (
    member_id, -- PK col 1
    activity_id, -- PK col 2
    ...
)

TABLE follow (
    id, -- PK
    follower_id,
    member_id,
    ...
)
Run Code Online (Sandbox Code Playgroud)

member_activity表有一个定义为 的复合主键member_id, activity_id,因为我只需要以这种方式查找该表上的数据。

我也有一个非聚集索引follow

CREATE NONCLUSTERED INDEX [IX_follow_member_id_includes] 
ON follow ( member_id ASC ) INCLUDE ( follower_id )
Run Code Online (Sandbox Code Playgroud)

此外,我有一个 Schema-bound 视图network_activity,其定义如下:

CREATE VIEW network_activity
WITH SCHEMABINDING
AS

SELECT …
Run Code Online (Sandbox Code Playgroud)

sql-server deadlock materialized-view

17
推荐指数
1
解决办法
4205
查看次数

标签 统计

deadlock ×1

materialized-view ×1

sql-server ×1