我使用的是一个非规范化的表,它每天收集大约35000行数据。
数据以自动化方式从生产数据库中反规范化。数据非规范化的主要动机之一是,基于C#的UI利用了许多复杂的、非持久性的计算,为了保证质量,我们不想通过视图重新创建这些计算。
目前,这个表上没有任何索引,但正在探索添加它们。我是一名统计学家,现在仍在努力解决索引中的细微差别。我面临的一个大问题是,对完全相关的INT和VARCHAR进行索引会产生什么后果。
也就是说,这两个字段InstrumentId(INT)和InstrumentName(VarChar(50))是从同一个规范化表中记录的。我们将两者都包含在非规范化数据中,这样我们就可以显示名称而无需连接,还可以查询INT。(数据库有大约200个唯一的工具)
尽管我们为了查询而包含INT,但有时我们很懒,喜欢查询VarChar,因为它更容易验证条件。
当我们开始添加索引时,我很好奇将INT和VARCHAR作为单独的非聚集索引进行索引会有什么影响。考虑因素包括速度、存储、碎片等。
将两者都作为指数添加是一种合理的方法,还是会让人头疼?请参考讨论这些问题的阅读材料。
我已经看过了
this question
,其中讨论了选择其中一个或另一个的选项,但我很难找到关于两者都使用的参考资料。