小编Mar*_*cus的帖子

长时间运行的删除查询

我有一个大约有 1100 万行的表,定义为:

CREATE TABLE [sko].[stage_närvaro]( 
    [datum_fakta] [datetime] NULL, 
    [person_id] nvarchar NULL, 
    [läsår_fakta] nvarchar NULL, 
    [termin_fakta] nvarchar NULL, 
    [period_fakta] nvarchar NULL, 
    [vecka_fakta] nvarchar NULL, 
    [veckodag_fakta] nvarchar NULL, 
    [ämne_id] nvarchar NULL, 
    [ämne] nvarchar NULL, 
    [frånvaro_min] [float] NULL,
    [närvaro_min] [float] NULL, 
    [frånvaroorsak_id] nvarchar NULL,
    [frånvaroorsak] nvarchar NULL, 
    [beskrivning] nvarchar NULL, 
    [personal_id] nvarchar NULL, 
    [försystem] nvarchar NULL 
)
Run Code Online (Sandbox Code Playgroud)

使用以下非聚集索引:

CREATE NONCLUSTERED INDEX [stage_skola_närvaro_ix1] ON [sko].[stage_närvaro] 
(
    [person_id] ASC,
    [termin_fakta] ASC,
    [läsår_fakta] ASC
)
Run Code Online (Sandbox Code Playgroud)

当我运行以下删除查询时,至少需要 2 个多小时才能完成。

DELETE  sko.stage_närvaro
FROM    sko.stage_närvaro e
WHERE   försystem …
Run Code Online (Sandbox Code Playgroud)

performance sql-server query-performance

3
推荐指数
1
解决办法
1261
查看次数