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

时间:2017-12-28 10:20:33

标签: sql sql-server query-optimization execution sqlperformance

我的查询如下:

SELECT Brand,Id,Model FROM product

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

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

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

为什么?

1 个答案:

答案 0 :(得分:0)

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

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

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

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