SQL Server - 不依赖正态分布监视数据

时间:2016-03-15 21:13:13

标签: sql-server tsql monitoring

我目前有几个存储过程监视数据库服务器中数据的不同方面。虽然我在各种流程上都有电子邮件和失败通知,但成功的流程并不能保证数据本身是正确的。

例如:处理规则可能会导致某些数据因看似有效的原因而被拒绝,但是,由于来自外部来源的垃圾邮件,某一天的拒绝率非常高。这应该被标记,以便我们可以尽快解决这个问题,以减少我们服务器的开销。

我目前使用的监视器使用正常分布,为每种监视器类型使用一段特定时间的历史数据。当昨天的数据超出2个偏差时给出“黄色”状态,当它在3个以外时给出“红色”。

我遇到的问题是,许多(几乎所有)这些显示器每天都会标记为“黄色”,有些显示器会在没有问题时标记为“红色”。我相信这是因为我的数据不正常。

我的问题是: 有没有比正态分布更好的监测数据的方法,如果有的话,是否可以提供研究材料以指引我朝正确的方向发展?

我发现这个http://www.sqlservercentral.com/articles/data+monitoring/137257/作为一个起点非常有趣。其他搜索倾向于返回正态分布类型结果。

1 个答案:

答案 0 :(得分:2)

对于初学者来说,在开始假设数据正常并创建依赖于正常性的过程之前,最好测试一下正常性。

正态分布的偏斜和峰度值接近于零。通常,如果一组数据在-1和+1之间具有偏差,则数据的偏斜是正常的。如果样本的峰度值介于-4和+4之间,那么这可能是相当正常的。

进行快速谷歌搜索,我发现this procedure用于计算transact-SQL中的偏斜和峰度,但我还没有尝试过。

如果您的数据对于任何特定列都是正常的,那么使用标准偏差可能是合理的。也就是说,请记住,在正态分布中,所有值的5%将超出平均值的-2和+2标准偏差,并且所有值的约0.5%将接近或超过-3和3个标准差的意思。因此,即使使用“正常数据”,即使获得了相当多的警告和警告,也不应该感到惊讶。

要记住的另一件事是你是在看样本或人口的分布。如果您将昨天的数据与所有历史数据(即人口指标)的均值进行比较,那么这与过去一个月数据的样本完全不同。如果您正在使用滚动样本(例如,过去30天的数据),您需要确保您的滚动样本足够大,足以代表您所比较的人群。

如果您的数据不正常,那么您可能最好为您收集的每个数据点构建一个表格,并注意警告和警告点。有一整套统计分析可用于确定您所需数据的统计显着变化,但其中许多变量相当复杂,可能不容易使用T-SQL逻辑进行复制。

所有这一切都说,听起来SQL Server 2016将会在你的小巷里,因为它支持R的集成,据说可以更容易地对你的数据进行复杂的统计分析。

如果您有任何其他问题,请与我们联系!