我有一个超过1024列的表。我们正在使用宽表来处理这种情况。按聚簇索引(PK)进行排序没有任何问题,但是当按任何其他列进行排序时,则会出现以下异常。
Select PK,c1,c2,c3....,c2400 from table order by c1
消息8618,第16级,状态2,第1行
查询处理器无法生成查询计划,因为 工作表是必需的,其最小行大小超过了最大 允许8060字节。需要工作表的典型原因 是查询中的GROUP BY或ORDER BY子句。如果查询中有一个 GROUP BY或ORDER BY子句,请考虑减少数量和/或大小 子句中的字段。考虑使用前缀(LEFT())或哈希 (CHECKSUM())字段用于分组,或前缀用于排序。注意 但这会改变查询的行为。
让我知道对宽表排序的可能解决方案。