为了保证事务的完整性(即ACID四个特性),当数据被删除时,需要确保被修改的数据可以进行回滚(UNDO)操作,SQL SERVER会把被删除的整条数据记录在日志文件中。若是进行大批量数据的删除操作,那就需要花费大量的时间记录被删除的数据作为事务日志。这样一来,大量的日志记录会给DELETE操作带来一定的性能影响,如果再碰上日志文件存在I/O上的瓶颈,那就可能造成一些阻塞。同时,记录下所有被删除的数据时,日志文件将迅速增长,对磁盘空间比较紧张的服务器也会造成一些问题。
与UPDATE相同,DELETE同样存在更新锁和排他锁的问题。同时,DELETE操作还会更新表中的所有索引字段,对性能的要求更高。请确保DELETE的性能。此外,应当注意,删除数据后,SQL Server并没有专门的工具可供回滚恢复数据。因此,在删除数据前,应谨慎考虑。可以通过预先备份的方式,将需要删除的数据提前备份起来,当发现数据还需要使用时,可以及时恢复。