SQL Server数据库大小 - 为什么这么大?

mic*_*knt 2 sql sql-server database-design sql-server-2008

我正在构建一个包含大约30个表的数据库:

  • 表中最大的列数约为15.
  • 对于数据类型,我主要使用VarChar(50)作为文本
  • 和Int og SmallInt数字.
  • 标识列是Uniqueidentifiers

我一直在测试一些数据并再次删除.我没有删除所有数据,所以everey表是空的.但是,如果我查看Management Studio中数据库的属性,则大小为221,38 MB!

怎么回事?请帮助,我收到我的托管公司的通知,我超出了我的极限.

最好的祝福, :-)

Gor*_*off 6

我建议您首先查看数据库的恢复模式.默认情况下,恢复模式为FULL.这将使用您执行的所有事务填充日志文件,在执行备份之前永远不会删除它们.

要更改恢复模式,请右键单击数据库,然后选择"属性".在属性列表中,选择"选项"(位于右侧窗格中).然后将"恢复模型"更改为"简单".

您可能还想缩小文件.为此,右键单击数据库并选择"任务" - >"收缩" - >"文件".您可以通过更改中间的"文件类型"选项来收缩数据文件和日志文件.

马丁的评论非常有趣.即使日志文件处于自动截断模式,您仍然会记录删除的问题.如果您创建了大型表,则在截断文件之前,日志文件仍将展开并且空间不会恢复.你可以通过使用TRUNCATE鼠标来解决这个问题DELETE:

truncate table <table>
Run Code Online (Sandbox Code Playgroud)

不会记录每个被删除的记录(http://msdn.microsoft.com/en-us/library/ms177570.aspx).

delete * from table
Run Code Online (Sandbox Code Playgroud)

记录每条记录.

  • 谢谢!将恢复模式设置为简单并缩小数据库之后,将整个事情减少到3 mb :-)由于用户权限,我无法通过Management Studio访问它,但是此脚本帮助了我:ALTER DATABASE [Hxxx_xxxxxxxxxx] SET RECOVERY简单的去DBCC SHRINKDATABASE(N'Hxxx_xxxxxxxxxx')Go (2认同)