我有这张表:
所有行都使用前20列,但剩下的20列仅由大约2%的行使用,其余的则为null。查询主要在第一列上运行。
我的问题是,它是否具有任何性能优势(或者是任何实际的上行/下行),将它们拆分为具有1:1关系的单独表格。列是日期,整数和短字符串的混合。它将在Azure SQL上运行并使用ORM。
答案 0 :(得分:3)
嗯,这取决于。从存储引擎perspactive,分割表将在主表中提供较小的行,单个页面上的行数更多,一次读取的数据更多,结果可能是更好的性能。 但这在很大程度上取决于您的大多数查询是否会加入子表。 当然,您应该测试这两种方法,并且还要考虑稀疏列功能(https://msdn.microsoft.com/en-us/library/cc280604.aspx)。