0
我正在对一组ID进行批量删除,将其作为发送到存储过程的字符串,并以逗号分隔。我有一个函数将它们分解成一个表格,以便我们可以对它们进行比较。即使我有SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
,我有时也会在此SP上发生死锁。有没有更好的方式来执行批量删除,然后用SP来提高性能并且不会造成死锁?批量删除时发生死锁,需要更好的性能
DELETE FROM Game
WHERE Id IN (
SELECT g.Id
FROM Game g
INNER JOIN [EventGame] eg ON g.Id = eg.Id
INNER JOIN MemberEvent me ON me.EventId = eg.EventId
WHERE
eg.EventId = @EventId AND
g.Id IN (SELECT * FROM dbo.Split(@DeletedGameIds, ',')) AND
(g.[Type] = 1 OR g.[Type] IS NULL) AND
me.MemberId = @MemberId
)
此删除是否在OLTP应用程序在应用程序在线时发生删除? –
什么是游戏桌上的Id列索引? –
Clustered Index,Primary Key –