我在SQL Server中有两个数据库。我想找出比(比如3年)更早的数据。
我知道数据库创建日期,目前我有大约550 GB(两个数据库)的数据跨越了7年,我想知道'有多少DB数据(总共550 GB)超过3年或(5年)'?
我正在浏览此链接,但无法获得预期的数据。
现在我想到的解决方案之一是找出占7年的总行数(很容易得到这个数字),总行数占5年(从创建日期开始)(不要我不知道如何得到这个号码。
然后对于row_count_7_years帐户的550 GB数据,row_count_5_years会是什么?我会得到大约数据。
请帮助
答案 0 :(得分:2)
出于此目的,您应该保留一些日期时间字段,如marc所述。我想你没有它。
在你建议的解决方案中,你可以从你的表中获得整行数(我认为是7年),但是由于没有日期,你将无法获得5年的行数。
您可以获得7年的整数记录并将其除以年数,并且只有在您拥有数据库平均值的情况下,您才可以查询top(一年中的numberOFRows)* 5并订购他们通过row_number()。结果 - 行,你应该删除。但我不建议你使用这个解决方案。
我建议您更改表并为每个表添加日期时间列。在此之前,您应该为整个日期进行备份并将其复制到某处。 3年后,您将能够进行清理。
答案 1 :(得分:0)
如上所述u shud有一个日期列,但是如果你不这样做,根据表中的实际情况你可能能够估计查找与其他具有datetime列的表的实际关系的行数,否则如果你有一个备份(不太可能,但仍然)你可以恢复它来识别增量