SQL 查询执行时间,SQL 服务器,嵌套查询

SQL Query Execution time , SQL Server, Nested Query

我有如下查询:

SELECT Brand,Id,Model FROM product

由于产品 table 有超过 100 万条记录,这需要几秒钟的时间。

但是查询很快就会执行。 (连一秒都不到))

select count(*) as numberOfRows from (SELECT Brand,Id,Model FROM product) result

这是为什么?

执行查询时,所花费的时间将根据列数和行数及其数据类型而有所不同。

在您有 10 列的 table 中,如果您 select 所有记录的所有列 (*) 和所有记录的仅 1 或两列,则性能会有所不同。 因为第二种情况加载的数据量较少,所以执行速度会更快。

就像那样,当您说 Count(*) 结果只是一个单元格,而在您的第一个 Select 中,您 select 为这 3 列计算了数百万行,所以数据量很大。

这就是您更快获得 Count(*) 结果的原因。您不需要在计数中给出 *,只需使用 Count(1) 以获得更好的性能。