0

我正在使用知识软件进行数据分析,我正面临性能问题,现在我正在查看“数据集审计”日志以查看系统执行了哪些查询。我发现这个对我来说是一派胡言:

SELECT COUNT(*) 
FROM 

(select TOP(100) PERCENT "ATC_1" AS "ATC_1" 
from 

    (SELECT [ID_AFo]
          ,[ATC]
          ,[ATC_1]
          ,[ATC_3]
          ,[ATC_4]
          ,[ATC_5]

      FROM [AFO]

        ) T  order by "ATC_1" ASC
) u

内部T查询是我输入的数据集定义查询,基本上是select * from [AFO]在我的桌子上,外包装是由知识制作的(我从未写过它们)

没有select count (*) from T执行相同的计算但避免了昂贵的订单吗?

编辑:后端(数据源)是 MSSQL,缓存服务器是 MYSQL,所以经常查询在 mysql 上

4

1 回答 1

0

此查询等效于:

SELECT COUNT(*)
FROM [AFO];

我能想到构造这样一个查询的唯一原因是“100”是否可以设置为另一个值。我不确定 SQL Server 的优化器是否足以消除ORDER BY子查询中的 。

于 2018-06-18T11:05:00.470 回答