首页 > 解决方案 > SQL Pivot 在 26500 和 2650 之间需要显着的时间差异

问题描述

我一直在试验 EAV 表及其在允许动态数量的属性方面的有效性。在我的实验中,我发现要旋转的 EAV 表中超过 26500 行会导致旋转时间发生巨大变化。我很好奇为什么会这样,以及有什么方法可以加速这个枢纽过程。

下面是显示查询和执行计划更改的图像。

在此处输入图像描述 EAV 表

25600 行:

SELECT * 
FROM (
    SELECT TOP (25600) *
    FROM _EAV_Data )
    AS SourceTable PIVOT( MIN([Value]) FOR Atribute IN(/*<Atributes>*/)) AS P

在此处输入图像描述

25601行:

SELECT * 
FROM (
    SELECT TOP (25601) *
    FROM _EAV_Data )
    AS SourceTable PIVOT( MIN([Value]) FOR Atribute IN(/*<Atributes>*/)) AS P

在此处输入图像描述

标签: sqlsql-serverpivot

解决方案


推荐阅读