delete from tb_cdwaac where convert(datetime, convert(varchar, CheckTime, 101)) in ('2009-6-1','2009-6-2','2009-6-3','2009-6-4','2009-6-5','2009-6-6','2009-6-7','2009-6-8','2009-6-9','2009-6-10','2009-6-11','2009-6-12','2009-6-13','2009-6-14','2009-6-15','2009-6-16','2009-6-17','2009-6-18','2009-6-19','2009-6-20','2009-6-21','2009-6-22','2009-6-23','2009-6-24','2009-6-25','2009-6-26','2009-6-27','2009-6-28','2009-6-29','2009-6-30')in条件中的时间是不确定的。但是就是上一条,一次就删除3000行左右,有时候一瞬间就执行完了,有时候要好长时间,甚至超过一分钟,请高手指点。是否需要优化sqlserver服务器,才怎么进行。谢谢。
delete from tb_cdwaac where convert(datetime, convert(varchar, CheckTime, 101)) in
(select 时间 from #t)
--2 tb_cdwaac 增加計算列 AS convert(varchar, CheckTime, 101)並建立索引
--3 刪除根據條件與臨時表join
where CheckTime between '2009-6-1' and '2009-6-30 23:59:59'