Sql server 2008 r2 当数据库接近最大大小时,如何设置sql server以向我发送电子邮件?

Sql server 2008 r2 当数据库接近最大大小时,如何设置sql server以向我发送电子邮件?,sql-server-2008-r2,dbmail,Sql Server 2008 R2,Dbmail,前几天,我正在为一个客户通过vpn进行一个旧项目,发现了一个问题,我从错误的PK中清除了数据,结果他们的数据库很大,返回信息很慢,这导致我们的软件崩溃 我开始想,我只是想知道我什么时候接近最大尺寸。我知道如何为电子邮件通知设置sql server,但我只发送了测试消息。我查看了我的数据库属性,希望能看到一些与电子邮件相关的选项,但什么也没看到 我见过你在工作后可以在哪里发送电子邮件,所以我希望你也能这样做。有人知道我如何做到这一点吗?有一个大小列,用于存储页数。一个页面是8kb,所以你需要将它乘

前几天,我正在为一个客户通过vpn进行一个旧项目,发现了一个问题,我从错误的PK中清除了数据,结果他们的数据库很大,返回信息很慢,这导致我们的软件崩溃

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

我见过你在工作后可以在哪里发送电子邮件,所以我希望你也能这样做。有人知道我如何做到这一点吗?

有一个
大小
列,用于存储页数。一个页面是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

如果要对所有数据库执行此操作,可以使用-I观察到此处的“大小”列并不总是与
sys.database\u files
中的“大小”列同步,而无需进入每个数据库的
sys.database\u files
视图,我会首先信任后者

什么是“最大尺寸”?是2008年还是2008年?你看过所有的数据库邮件吗?请注意,如果这是一个Express数据库,则您无法以本机方式访问作业,因为Express没有SQL Server代理。我当前正在使用DBMail从服务器发送测试消息。我实际上读了你在设置过程中链接的文章。这是sql 2008 R2标准版,因此它支持代理。在我开始关心之前,我猜大小应该是几兆。这是关于一个特定的数据库,任何数据库,还是服务器上所有数据库的总和?我想在单个数据库上这样做。我做的大多数服务器只有一个,但有些有三个。非常感谢亚伦。这正是我需要的。