0
我运行一个简单的删除查询:删除查询时间太长的时间来执行
delete from table where column_name in (value1, value2, ...)
但它太长的时间来执行,但它完成 - 但不是很快。该表未编入索引。我也杀了所有的运行会话。几天回它运行非常顺利,我不知道为什么,它的表现很奇怪。
请在这里把你的宝贵想法。
我运行一个简单的删除查询:删除查询时间太长的时间来执行
delete from table where column_name in (value1, value2, ...)
但它太长的时间来执行,但它完成 - 但不是很快。该表未编入索引。我也杀了所有的运行会话。几天回它运行非常顺利,我不知道为什么,它的表现很奇怪。
请在这里把你的宝贵想法。
虽然索引你对过滤可以帮助(也可以不列;它取决于在表中受影响行的百分比,该表的大小,如何将数据表内等组织),如果删除以前在可接受的时间运行之前,但它不是任何更多的(使用完全相同的过滤条件),那么就有一定改变。
我的猜测是表中的数据比以前多得多,但可能有多种因素,例如内存,删除的索引等等。如果您有执行计划,这将有所帮助当删除是与当前执行计划确定一起运行。这可能会引发一些问题。
索引将肯定帮助 – Madhivanan
请尝试删除批处理明智的记录 – Antony
当你在'delete'上有'where'子句时,你应该索引该列,否则只要你获得一些数据量就会很慢。 – henrikstroem