前几天我在vpn上为一个客户端开发了一个旧项目,并发现了一个问题,即我从错误的PK中清除数据,因此他们的数据库很庞大并且返回信息的速度很慢软件吓坏了。
我想我想知道我什么时候接近最大尺寸。我知道如何为电子邮件通知设置sql server但我只发送了测试消息。我查看了我的数据库属性,希望我能看到一些与电子邮件相关的选项,但我没有看到任何内容。
我已经看到你在工作后可以发送电子邮件的地方,所以我希望你也可以这样做。有谁知道我怎么能做到这一点?
答案 0 :(得分:0)
sys.database_files
有一个size
列,用于存储页数。页面为8kb,因此您需要将其乘以8 * 1.024,即8.192。这将向我们显示磁盘上文件的大小。只需将[database name]
替换为数据库的实际名称,如果需要2 GB以外的值作为警告阈值,请调整大小检查。
DECLARE @size DECIMAL(20,2);
SELECT @size = SUM(size * 8.192)/1000 FROM [database name].sys.database_files;
IF @size >= 2000 -- this is in MB
BEGIN
-- send e-mail
END
如果您想对所有数据库执行此操作,则可以执行此操作,而无需使用master.sys.sysaltfiles
进入每个单独数据库的sys.database_files
视图 - 我发现此处的大小列并非总是在与sys.database_files
中的尺寸列同步 - 我会先信任后者。