我已经获得了一份健康保险理赔数据的大量平面文件。它包含130万行和154列。我需要对这些数据进行一系列不同的分析。这将在SQL Server 2012中。
该文件有25列用于诊断代码(DIAG_CD01
通过DIAG_CD_25
),8代表结算代码(ICD_CD1
到ICD_CD8
),4代表程序修饰符代码(MODR_CD1
到MODR_CD4
)。看起来它是从关系数据库转储的。计费和诊断代码将成为大部分分析的基础。
所以我的问题是我是否应该将文件拆分为模拟关系数据库。在像这样的表上编写分析查询将是一场噩梦。如果我将其拆分为父表和三个子表(Diagnoses
,Modifiers
和Bill_codes
),我的查询代码将更容易。但如果我这样做,除了130万条父记录之外,我还会拥有多达3250万条诊断记录,高达1040万条计费代码记录,以及高达520万条修改记录。另一方面,三组平面数据的很大一部分是空字段,这应该会破坏查询性能。
将这些数据作为模拟关系数据库与巨型平面文件进行查询会产生什么样的性能影响?阅读关于规范化的说法听起来好像应该更好,但是四个表分割中的大量记录让我停下来。
答案 0 :(得分:1)
似乎如果你保持非规范化,你将不得不重复查询逻辑一次(诊断为25),更糟糕的是,你必须以某种方式将所有这些部分聚合在一起。
像您建议的那样,将数据拆分为逻辑表,如诊断代码,计费代码等,您的查询将更容易处理。
如果你有一台不错的机器,这些行数不应该是sql server的性能问题。只需确保您有索引来帮助您加入等等。
祝你好运!