为什么在DISTINCT SELECT没有时将TOP 10添加到DISTINCT SELECT超时?

时间:2018-03-21 01:07:23

标签: sql-server

当我运行基本的SELECT DISTINCT查询时(注意:只有在使用View而不是Table时才会出现这种情况)

SELECT DISTINCT 
    [DateField]
FROM MyData

我很快(<1秒)恢复了我的190行。但是当我添加TOP 10时(在DISTINCT之前或之后),它会一直运行直到超时(5分钟+)。

SELECT TOP 10 DISTINCT 
    [DateField]
FROM MyData

如果我将SELECT DISTINCT查询作为子查询(仅测试替代方案),也会发生这种情况。

SELECT TOP 10 
   FOO.[DateField] 
FROM
     (SELECT DISTINCT  [DateField]
      FROM MyData) FOO

以下是SELECT DISTINCT查询返回的数据示例。

DateField
2016-12-01 00:00:00.000
2016-09-01 00:00:00.000
2016-11-01 00:00:00.000
2017-11-29 00:00:00.000
2017-07-01 00:00:00.000
2016-08-01 00:00:00.000
2017-04-24 00:00:00.000
2016-03-01 00:00:00.000
2017-03-01 00:00:00.000
2016-07-01 00:00:00.000
2016-02-01 00:00:00.000
2016-04-01 00:00:00.000
2017-01-01 00:00:00.000
2016-06-01 00:00:00.000
2016-05-01 00:00:00.000
2018-02-28 00:00:00.000

提前致谢!

0 个答案:

没有答案