从具有数十亿行的表中删除特定行

时间:2014-09-02 23:13:28

标签: sql sql-server tsql

我有一个包含数十亿行的庞大SQL表。例如,如果我必须仅记录特定日期的DELETE条记录。什么是最好的方法。

Delete * from dbo.table where date in ('date1','date2','date3')

请建议

1 个答案:

答案 0 :(得分:3)

WHILE (1 = 1)
BEGIN
   DELETE TOP (10000)
      FROM Table_Name
   WHERE DATE_COLUMN = '20140101'  --<-- ANSI DATE format  YYYYMMDD
       OR
         DATE_COLUMN = '20140102'
       OR
         DATE_COLUMN = '20140103'

     IF (@@ROWCOUNT < 1)
       BEGIN 
         BREAK;
       END   
END