1

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

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

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

4

1 回答 1

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

如果要对所有数据库执行此操作,则无需进入每个单独数据库的sys.database_files视图即可执行此操作,方法是使用master.sys.sysaltfiles-我观察到此处的大小列并不总是与中的大小列同步sys.database_files-我会首先信任后者.

于 2011-08-25T12:46:09.350 回答