如何确定哪些表导致数据库随着时间的推移而增长?

kas*_*hif 9 sql-server-2008 sql-server

我在 SQL Server 2008 中有一个一直在增长的数据库,我想知道哪些表在过去 6 个月中增长最快。

Aar*_*and 15

SQL Server 不跟踪此信息。您需要某种监视(无论是工具还是自产的),以便随着时间的推移保留表空间的快照。这可以很简单,也可以很复杂:

  • 查看@Zane在他的回答中突出显示的报告,并经常保存文件;
  • 拍摄自己的定期快照,例如sys.dm_db_partition_stats
  • 查看@Ali 建议的旧备份的恢复副本- 但是谁知道您的备份进行了多远,如果磁盘空间有问题,您可能无法恢复一堆备份以进行并排比较反正。
  • 使用像 PowerShell 这样的外部工具来自动化它,就像文章 @Kin 指出的那样
  • 使用成熟的监控工具来跟踪空间、碎片等随着时间的推移(免责声明:我为 SQL Sentry 工作)。

除非已经实施了这些方法中的一种或多种,​​或者有人发明了时间机器,否则真的没有什么好方法可以算出 6 个月前、两周前或 20 分钟前的桌子有多大。


Zan*_*ane 13

如果您没有以某种方式捕获和存储这些指标,那么就没有办法查看历史记录。但是,如果有帮助,您现在可以很容易地看到哪些表使用的磁盘最多。

右键点击