从 SQL Server 数据库中删除

本文关键字:删除 数据库 Server SQL | 更新日期: 2023-09-27 18:30:23

我正在我的程序中使用 SQL Server 数据库和 Linq-to-SQL

我正在使用此代码清空数据库

 db.Tb1.DeleteAllOnSubmit(db.Tb1.Select(x => x));
 db.SubmitChanges();

执行此代码后,数据库中的所有内容都将被清除。但问题是删除行时数据库的大小并没有减少。

我的意思是,当我使用该代码时,当它没有数据时,数据库的大小仍然相同

对不起,英语不好

从 SQL Server 数据库中删除

这就是 SQL Server 的工作方式。除非在数据库上手动运行"释放未使用的空间"操作,否则不会返回空间,该操作会重新组织记录在数据库文件中的物理存储方式。否则,将保留未使用的空间,并在添加新记录时重复使用。

每当删除行时,数据库都不会收缩其数据文件。您必须要求服务器收缩其文件,例如使用 T-SQL 命令 DBCC SHRINKDATABASE(请参阅 DBCC SHRINKDATABASE 的 MSDN 文档)。此行为的主要原因可能是收缩对性能的影响。此外,服务器将重用现在可用的页面。对于定期删除大量行或截断完整表的数据库,可以将收缩计划为维护任务。然后,还应计划更新该表的数据库统计信息(T-SQL 命令 UPDATE STATISTICS)。