当数据库接近最大大小时,如何设置我的SQL Server以通过电子邮件发送给我?

时间:2011-08-24 21:41:54

标签: sql-server-2008-r2 dbmail

前几天我在vpn上为一个客户端开发了一个旧项目,并发现了一个问题,即我从错误的PK中清除数据,因此他们的数据库很庞大并且返回信息的速度很慢软件吓坏了。

我想我想知道我什么时候接近最大尺寸。我知道如何为电子邮件通知设置sql server但我只发送了测试消息。我查看了我的数据库属性,希望我能看到一些与电子邮件相关的选项,但我没有看到任何内容。

我已经看到你在工作后可以发送电子邮件的地方,所以我希望你也可以这样做。有谁知道我怎么能做到这一点?

1 个答案:

答案 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中的尺寸列同步 - 我会先信任后者。