如何检查我是否达到了 Express Edition 的大小限制?

g00*_*0fy 10 sql-server-2005 sql-server sql-server-express limits

我很迷惑。AFAIK SQL Server 2005 Express 的数据库 数据大小限制为 4GB 。但是我有以下结果sp_spaceused

数据库的实际大小是多少

  1. 如何检查我的数据库是否达到了大小限制?
  2. 是未分配的空间space left直到我达到限制吗?
  3. 我还剩多少空间?
  4. 是否index_size在极限算?

Ali*_*ghi 6

这是我无耻地从这里撕下的一个好脚本:

use [Insert DB Name]

select
a.FILEID,
[FILE_SIZE_MB] = 
convert(decimal(12,2),round(a.size/128.000,2)),
[SPACE_USED_MB] =
convert(decimal(12,2),round(fileproperty(a.name, 'SpaceUsed')/128.000,2)),
[FREE_SPACE_MB] =
convert(decimal(12,2),round((a.size-fileproperty(a.name, 'SpaceUsed'))/128.000,2)) ,
NAME = left(a.NAME,15),
FILENAME = left(a.FILENAME,30)
from
dbo.sysfiles a
Run Code Online (Sandbox Code Playgroud)

这很好,因为它将为您提供每个 DB 文件中的可用空间(您可能有多个文件,也许有人将其设置为在每个文件中放置一些对象)以及可用大小。

例如,您有一个 4GB 的数据文件,其中有 3GB 的可用空间。也许你有 1 个没有大量数据的 MDF,但有一个有大量数据的 NDF。此查询将告诉您每个文件中的可用大小以及该文件分配给哪个数据库。请记住将每个数据库的所有“SPACE_USED_MB”相加以获得总大小。

祝你好运!

编辑: 删除了一个不受支持和错误的命令,我认为我可以在这里发布此查询。:(

  • 不好了!不是 [不可靠、未记录、不受支持和有缺陷的 `sp_msforeachdb`](http://sqlblog.com/blogs/aaron_bertrand/archive/2010/12/29/a-more-reliable-and-more-flexible-sp-msforeachdb .aspx)!?!? (4认同)

mrd*_*nny 5

数据库的大小就是文件的大小。查看数据文件的实际大小(事务日志不计算在内)。是的索引计数。如果空间不足,请考虑升级到 SQL 2012 Express,因为这会将大小限制增加到 10 Gig。

  • SQL Server **2008 R2** Express 也有 10 GB 的限制(只是为了完整性) (6认同)