首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SQL Server数据库中删除

问从SQL Server数据库中删除
EN

Stack Overflow用户
提问于 2012-04-07 05:07:21
回答 2查看 265关注 0票数 2

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

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

代码语言:javascript
复制
 db.Tb1.DeleteAllOnSubmit(db.Tb1.Select(x => x));
 db.SubmitChanges();

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

我的意思是,在没有数据的情况下,使用该代码后,数据库的大小仍然是相同的

很抱歉我的英语不好

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-07 05:13:05

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

票数 3
EN

Stack Overflow用户

发布于 2012-04-07 05:19:08

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10049265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档