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) 以获得更好的性能。
我有如下查询:
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) 以获得更好的性能。