sql - 批量删除(截断与删除)

标签 sql sql-server performance truncate bulk

我们有一个包含 150 多万条记录的表。我们需要清除/删除所有行。由于删除操作会写入 t-log,因此删除操作将永远持续下去,并且我们无法更改整个数据库的恢复模型。我们已经测试了截断表选项。

我们意识到截断会从表中释放页面,如果我没记错的话,它们可以重用,但不会自动收缩数据库。因此,如果我们想减小数据库大小,我们确实需要在截断表后运行收缩数据库命令。

这是正常程序吗?有什么需要注意或注意的地方,或者有没有更好的替代方案?

最佳答案

truncate 就是您要寻找的内容。如果之后需要缩小数据库,请运行收缩。

这个MSDN refernce (如果您说的是 T-SQL)比较删除行与截断的幕后情况。

关于sql - 批量删除(截断与删除),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1772984/

相关文章:

CSS剪辑使用GPU?

SQL查询根据加入日期获取客户数量

sql - 将重复的 varchars 更新为在 SQL 数据库中是唯一的

mysql - 在数据库中搜索具有多个 {tokens} 的字符串

sql-server - SQL Server 错误 : "%" is not a constraint. 无法删除约束。查看之前的错误

sql-server - 在具有两个 FK 的表上级联删除同一个表

sql - 将表定义克隆到 SQL Server 中的表变量

asp.net - 在生产服务器中分析 asp.net 网站的可能方法?

sql - 无法按非 ID 列执行 Postgres 组以获取包含最大值的 ID

MySQL 高 CPU 使用率与 InnoDB