【发布时间】:2012-06-05 16:39:34
【问题描述】:
我有这样的语句超时:
DELETE FROM [table] WHERE [COL] IN ( '1', '2', '6', '12', '24', '7', '3', '5')
我试着像这样一次做一个:
DELETE FROM [table] WHERE [COL] IN ( '1' )
到目前为止,它是 22 分钟,并且还在继续。
该表有 260,000 行,四列。
有没有人知道为什么会这么慢以及如何加快速度? 我在 [COL] 上确实有一个非唯一的非聚集索引,我正在执行 WHERE。 我正在使用 SQL Server 2008 R2
更新:我的桌子上没有触发器。
【问题讨论】:
-
如果你这样做
where [col] = '1'会发生什么? -
你检查过查询的执行计划是否有任何显示吗?
-
DELETE 语句由于日志的原因通常很慢。 TRUNCATE 更快。但在这种情况下您不能使用 TRUNCATE。我没有任何进一步的线索
-
一定有触发器或者死锁的东西。
标签: sql sql-server sql-server-2008 database-optimization