mssql sqlserver delete同truncate关键字区别说明


摘要:
下文讲述sqlserver中delete同truncate关键字的区别,如下所示:
实验环境:sql server 2008 R2



区别1:
所占用的事务日志空间不一致

delete删除一行数据时,则会写入一条数据日志记录
truncate 命令行,只写入一个释放数据页的日志信息,无其它日志说明


区别2:
命令运行时,所使用的锁类型不一样

delete 关键字每行数据进行删除,所以会对数据每行数据进行锁定
truncate关键的功能是释放数据页,所以只会锁定数据表和数据页


区别3:
对数据页的保留情况

delete关键字运行后,数据表中存在大量的数据页
truncate关键字运行后,数据页的释放信息将会写入数据库,数据页的占用信息会自动释放