SQL查询执行时间,SQL Server,嵌套查询

问题描述 投票:1回答:1

我有一个查询如下:

SELECT Brand,Id,Model FROM product

由于Product表有超过100万条记录,因此以秒为单位需要时间。

但查询会立即执行。 (不到一秒))

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

这是为什么?

sql sql-server query-optimization execution sqlperformance
1个回答
0
投票

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

在包含10列的表中,如果为所有记录选择所有列(*),为所有记录选择1或2列,则性能将不同。因为在第二种情况下加载的数据量较少,所以它将执行得更快。

就像那样,当你说Count(*)时,结果只是一个Cell,而在你的第一个Select中,你为这3列选择了数百万行,所以数据量很高。

这就是为什么你更快地获得Count(*)结果的原因。你不需要在计数内给出*,而只需使用Count(1)来获得更好的性能。

© www.soinside.com 2019 - 2024. All rights reserved.