【问题标题】:Is it possible to check if a database is almost out of space?是否可以检查数据库是否几乎空间不足?
【发布时间】:2019-05-21 09:17:42
【问题描述】:

我最近将一个带有 SQL 数据库的 API 部署到了 Azure,它有 2GB 的空间。 现在,我想知道是否可以检查(使用 EntityFramework Core)数据库是否达到其空间限制,并删除五个最旧的条目。这可能吗,还是我应该只更改 Azure 上的设置?

【问题讨论】:

  • 请注意,删除记录并不一定会释放空间。数据库倾向于保留分配的空间以供进一步使用。 -- 要获取信息,您可能需要查看:stackoverflow.com/questions/18014392/…

标签: c# entity-framework entity-framework-core azure-sql-database


【解决方案1】:

即使您删除了 5 个条目(或实际上是任何数字),您仍有可能空间不足。没有办法知道要删除多少记录来解决您的问题(也不应该有)。

即使你偶然发现了今天可以使用的东西,你也不能保证它适用于 SQL-Azure 的下一个版本。

【讨论】:

  • 好的,我明白了,但是如果我想保持在 2GB 以下,最好的办法是什么?简单地说,我想,如果数据库快满了,添加新元素并删除最旧的元素。不能这样做吗?
  • 让我们尝试另一个角度。 为什么数据库已满?如果您可以在“已满”时删除记录,为什么不直接删除这些记录呢?也许每天都删除 1 周之前的记录?
  • 我喜欢这个想法,但我宁愿删除大约 3-6 个月大的记录。我不知道如何才能做到这一点(我对此很陌生)。 EF Core 可以做到这一点吗?
  • 如果您的记录有插入/创建日期列,这很简单。然后你可以var oldies = _dbContext.YourTable.Where(x=>x.CreateDate <= DateTime.Now.AddMonths(-6)); _dbContext.YourTable.RemoveRange(oldies);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多