分析和检查所有数据库数据的最佳方法

时间:2012-05-22 20:34:29

标签: sql for-loop sql-server-2008-r2 null

我们的一位客户希望检查每个表中的每个数据库记录。 问题是,我们的数据库目前有数十个表(大于50个),每个表已经有数千个记录。

我们的客户想要做的基本检查是,检查每个表哪些列具有空值。我们的客户认为,如果平台用户只填写基本输入,则可能意味着用户没有充分利用平台中的可用输入。

满足此要求的最佳方式是什么?

我已经考虑过从统计上做这个:

  • Table1有30条记录,其中包含以下空列(Column1,Column2,Column3)
  • 30%的数据库表具有空值的记录

1 个答案:

答案 0 :(得分:2)

我知道这并没有真正回答你提出的问题,但我认为只检查“null”是要求的开始,但不太可能是结束。

在我完成大量数据的大多数项目中,我们最终构建了一个验证框架,该框架具有每个表的业务逻辑以及每个表中的每个字段。

例如,我们发现许多记录都包含伪造的电子邮件地址,因此我们编写了一个脚本来验证它们(最初非常简单,检查域是否存在,并且不是“test.com”之一,“ aaa.com“,”qwerty.com“等)。我们还意识到我们的电话号码是虚假的,所以我们检查了电话号码与明显匹配的电话号码(123-456789)。

这是背后的痛苦,但如果企业想要了解数据的质量,那么这是唯一的方法。

我们最终编写了几十个小的SQL脚本,每个脚本都会出现一个“可疑”记录列表,以及怀疑它们的原因。它不漂亮,但它易于扩展,易于运行,为业务提供了足够的信息来做出决策。