为什么选择*比从表中选择[FieldName]更快

时间:2014-05-29 04:02:46

标签: sql sql-server tsql

我有一个奇怪的情况。 我有一个复杂的查询,大约需要10秒钟从数据库中检索大约6000行。

查询版本1:

SELECT * from ..... 

在上面的版本中,从数据库中获取6000行需要大约10秒钟(我在谈论在SQL管理工作室中运行查询)

查询版本2:

SELECT [FieldName1], [FieldName2] from .....

在上面的版本(2)中,从数据库获取结果(6000行)需要一个多小时甚至更长时间(我在谈论在SQL管理工作室中运行查询)

两个查询都有相同的连接和条件。

有人可以对此有所了解吗?

感谢。

此致 拿烟

1 个答案:

答案 0 :(得分:0)

我想您可能正在从视图而不是表中检索数据。在这种情况下,可以想象使用的计划可能效率较低。

但是,在“正常”使用中,你SELECT来自表格(而不是视图或函数)

你应该从不期望使用列名而不是*来显着降低性能,你应该总是更喜欢显式列名而不是*非谓词{{1 }}Š