我检查了论坛还有其他类似的主题,但我的情况不同。对于数据库属性下的 myDatabase -> 常规选项卡,它显示:
Size : 25285.31 MB
Space Available: 3989.13 MB
并在磁盘上
myDB.mdf = 10.0 GB (10,745,806,848 bytes)
myDB_log.ldf = 14.6 GB (15,767,764,992 bytes)
根据我的理解,Expres 版本只允许 10GB,但这里似乎更多。数据库属性中的可用空间参数是什么。
SQL Server Express 仅对数据文件施加文件大小限制,日志文件可以增长到任意大小。数据库属性窗口中显示的大小是数据和日志文件的组合大小。
不过有些令人困惑的是,此窗口上显示的可用空间值仅与数据文件有关。如果您想更详细地了解这一点,我建议您查询系统表,而不是依赖 SSMS GUI(它并不总是会给您想要/需要的信息)。以下脚本将显示有关数据文件大小/增长设置的一些更详细信息:
顺便说一句:由于您的数据文件已经是 10GB,未来的增长操作将失败(并且任何触发增长的事务都会生成主文件组已满错误)。由于该文件被精确设置为 10GB,我怀疑它已经故意增长到这个数量以利用 SQL Express 提供的全部空间。
随着数据库的增长,SQL Server 将分配更多的磁盘空间。您可以从 1GB 开始,但随着时间的推移它会增长到 3GB。由于为每条记录重新分配效率低下,它会增长 x% 或 xMB(您可以定义这些)。可用空间是在下一次增长之前您可以使用多少空磁盘空间。
如果由于某种原因您相信您的数据库已经增长到不切实际的大小,您可以使用
DBCC SHRINKDATABASE(<YourDatabaseName>)
至于快递限额,我不确定它是如何计算的。但是您的大部分数据库大小可能都是日志文件,尤其是在您进行了大量更新和删除并且没有进行任何备份的情况下。
您可以检查日志文件大小:
如果您发现日志文件确实过大并且您不需要时间点恢复选项,您可以将恢复模式更改为简单,这将显着减少它的增长
恢复模型: https ://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/recovery-models-sql-server
您询问的“数据库属性中的可用空间参数”是数据文件(mdf)和事务日志文件(ldf)中的未分配空间。mdf 文件大小并不总是准确的,因为它包含未分配的数据页,并且(通常)在不再需要数据页时不会缩小。
准确查找已用空间的一种快速方法是运行 SQL 命令:
这显示了两个结果集。在第二个结果集中,第一行显示“大小”列中数据页的分配大小,这是您最准确的估计。
编辑:“maxsize”列显示允许文件增长到的最大大小,或者可以是“无限制”以允许文件增长以使用整个磁盘。将“maxsize”设置为一个实际数字很有用,然后如果您在一个磁盘上有多个数据库,您可以设置大小以防止一个数据库用完所有磁盘空间。
但是:SQL Server Express 的 10GB 限制具有优先权,因此即使您有 maxsize = Unlimited(或 maxsize = 20GB 或其他),您也会发现实际数据库大小不会超过 10GB。