首页 > 解决方案 > SELECT * 比 SELECT columnlist 快

问题描述

我对一个数据库有一个复杂的视图,它通过在其上执行多个连接(左连接和内连接)返回 26'404 行,包括这里来自子查询的一些列。

我尝试运行两个查询:

1)

SELECT 
* 
FROM dbo.vw_viewname as v

2)

SELECT 
v.column_name 
FROM dbo.vw_viewname as v

第一次查询执行时间: 0:00: 40

第二次查询执行时间: 0: 02:13

当我从不同的数据库调用此视图并从那里执行联接时,时间差异会更大[0:00:02 VS 0:02:30]。(是的,2 秒对 2 分钟)

谁能解释为什么会这样?我真的找不到任何合乎逻辑的理由!

编辑:在 SELECT 列表中包含由子查询生成的视图列使执行时间恢复正常(2 秒)。

标签: sqldatabasetsql

解决方案


推荐阅读