【发布时间】:2017-02-02 16:17:42
【问题描述】:
今天早上我收到一封电子邮件,说明我的网站无法正常工作。每当我尝试写入数据库时都会出错。错误是:
数据库 [NAME] 已达到其大小配额。分区或删除数据、删除索引或查阅文档以获取可能的解决方案。
我的数据库只有 16MB,有 2GB 的限制!在做了一些研究之后,我在数据库上运行了这个查询。
SELECT DATABASEPROPERTYEX ('DatabaseName','Edition')
SELECT DATABASEPROPERTYEX('DatabaseName','MaxSizeInBytes')
SELECT (SUM(reserved_page_count) * 8192)
FROM sys.dm_db_partition_stats
结果是
基本
2147483648
15777792
显然我的数据库远小于最大大小。是否有任何其他问题可能导致这种情况发生?
同时我将尝试删除和恢复数据库。
谢谢!
更新
一旦我恢复了数据库,它又开始工作了。
【问题讨论】:
-
您收到错误消息的错误代码是什么?
-
SUM(reserved_page_count) FROM sys.dm_db_partition_stats是 used 大小,但它不是数据库文件的大小(它可以增长以容纳以后删除、压缩等的数据)。我可以创建一个 500 GB 的数据库文件并且只插入一行。您的查询表明我的数据库小于 1 MB,但如果不允许我在驱动器上拥有 500 GB 的文件,我仍然有麻烦。 -
如果您想知道数据库文件有多大:
SELECT [type_desc], size * 8192 FROM [sys].[database_files];。您需要对此进行监控或避免做导致不必要的文件增长的事情。 -
@astaykov 我不同意。我发布的查询肯定会在当前版本的 Azure SQL 数据库 (here's some proof) 上运行,并且它会给出数据文件是否超过 OP 服务级别的 2GB 上限的想法。 (This screen shot shows that the numbers are not identical, and I am sure the variance can be much larger depending on workload.)
-
@astaykov 我仍在使用版本 11。即使查看 Azure 管理门户中的数据使用情况,它也仅显示 16MB 的 2GB。如果还有其他文件对 Azure SQL 服务起作用。他们真的应该在使用信息中包含这些内容。
标签: sql-server azure azure-sql-database