gpt4 book ai didi

sql-server - 从 SQL Server 中删除行会增加数据库大小

转载 作者:搜寻专家 更新时间:2023-10-30 20:08:34 26 4
gpt4 key购买 nike

我用 C# 编写了一些代码,用于从数据库中删除记录。这是包含在事务中的简单 SQL 删除代码。

using (SqlTransaction trans = conn.BeginTransaction()) {
//some delete code
trans.Commit();
}

我已经删除了数据库中 4 个表中的大约 400 万行。当我通过 Windows 资源管理器检查两个数据库的数据库备份大小时,大小急剧增加了大约三倍

  • 删除前:7GB
  • 删除后:28GB

我确认 MDFLDF 文件的大小都增加了。我还注意到一些不受删除影响的表的索引大小增加了。

删除后:

enter image description here

删除前:

enter image description here

我的目标是删除记录以减少数据库大小,但它反而增加了。你能告诉我为什么尺寸在增加吗?

编辑:

删除后:

  • database_size:61050.69 MB
  • 未分配空间:9592.60 MB
  • 保留:303512 KB
  • 数据: 207040 KB
  • index_size: 53024 KB
  • 未使用:43448 KB

删除前:

  • database_size:10067.88 MB
  • 未分配空间:16.69 MB
  • 保留:7290176 KB
  • 数据: 2937656 KB
  • index_size: 4324848 KB
  • 未使用:27672 KB

最佳答案

当您删除记录时,它会记录到事务日志中。因此通过删除如此多的记录,事务日志的大小会增加。

所以我认为您必须清除/重置交易日志(谷歌搜索) 同时,您还重新组织了索引。

这两个步骤都是强制性的。

关于sql-server - 从 SQL Server 中删除行会增加数据库大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37024435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com