Select *. Ist das performant?

26/05/2009 - 08:18 von peter-sesam | Report spam
Hallo NG.
Vor einem Monat hatte ich meine erste SQL-Server 2005 Schulung. Dort
sagte mir / uns der Referent, daß ein Select * from Tabelle genauso
performant sei, wie ein Select der gezielt auf Spalteneintràge geht.
So recht kann ich das nicht glauben, denn bedeutet ein Select * nicht,
daß ein Full Table Scan gemacht wird; was bedeutet daß die ganze
Tabelle gelesen wird?

Gruß und Danke für die Info


Peter
 

Lesen sie die antworten

#1 Christoph Muthmann
26/05/2009 - 08:33 | Warnen spam
wrote:
Hallo NG.
Vor einem Monat hatte ich meine erste SQL-Server 2005 Schulung. Dort
sagte mir / uns der Referent, daß ein Select * from Tabelle genauso
performant sei, wie ein Select der gezielt auf Spalteneintràge geht.
So recht kann ich das nicht glauben, denn bedeutet ein Select * nicht,
daß ein Full Table Scan gemacht wird; was bedeutet daß die ganze
Tabelle gelesen wird?




Hallo Peter,
der Unterschied in der Performance kann in zwei Punkten liegen:
1.) Es gehen Daten übers Netz, die nicht gebraucht werden
2.) Ein covering Index kann nicht verwendet werden, da Daten aus mehr
Spalten benötigt werden, als im Index enthalten sind

Ob ein Full-Table-Scan gemacht wird, hàngt vor allem an der Where-Klausel,
der Größe der Tabelle und den vorhandenen Indizes.

Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org

Ähnliche fragen