Optimering: Select * eller Select fält

ASP

8 svar · 221 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Trådstart#1

Blir det nån optimering om man skriver fältnamnen istället för stjärna när man hämtar data?

Medlem sedan dec. 19995 874 inlägg
#2

Databasen slipper leta efter fältnamnen, så skillnad är det. Sedan kanske det är onödigt att fylla med onödig information som inte behövs?

Medlem sedan dec. 200012 464 inlägg
#3

Vadå slipper leta? Om man anger kolumnnamn så måste ju dbms verifiera att dessa kolumner finns i tabellen.

Vinsten är man flyttar mindre data om man inte behöver alla kolumner.

Medlem sedan dec. 19995 874 inlägg
#4

grr... :e

Jag hade för mig att när man anger alla fältnamn eller skriver * så är det ändå en liten, liten vinst i att skriva in fältnamnen.
Men jag kanske har fel?

Medlem sedan juni 20019 024 inlägg
#5

Det måste väl bli en optimering om man anger fältnamnet. Om man skulle använda SELECT * i en databas med många poster borde det ju slöa ner minnet och servern åtminstone... eller?

Medlem sedan juni 200152 inlägg
#6

det beror ju på, som kanske redan är konstaterat här, om man ska ha alla fälten i tabellen.
Ska man hämta alla fälten spelar det väl ingen större roll hur man skriver men det är ju lättare att bara skriva *. Men ska man bara ha ett fält av tio så är det ju självklart bättre att skriva fält-namnet.

Medlem sedan juni 200117 inlägg
#7

"SELECT *" är slöare än "SELECT FOO". Spelar ingen roll om man hämtar allt lr inte. SELECT * anger juh inte namn, då förlorar man lite prestanda eftersom databasen själv måste hämta alla namn.
Som med all programmering så är det alltid bättre/snabbare med att deklarerade sak å ting. Desstu mer programmeraren själv tar hand om desstu mindre slipper ske "bakom kuliserna".

Dock är den prestand vinsten så pass liten att man lika gärna kan skriva SELECT *. (Man bör dock använda SELECT FOO när man har välbesök site + stor databas + seg server). Iofs bör en bra programmerare alltid sträva efter att vinna prestanda (dvs utan att förlora på andra plan) ;D

Men SELECT FOO är bättre än SELECT *, det var väl frågan från början =)

Fast vill man vinna prestanda bör man först å främst byta till ett snabbare webbhotel å byta från Access till SQL-databas innan man försöker vinna prestanda från SELECT * ect.

Medlem sedan feb. 20001 590 inlägg
#8

Sen resulterar det ju i olika stora recordset!
SELECT ALL ger ett recordset där alla fält och dess värden är med.
SELECT [fält] ger bara de fält man anger.

Är det många poster och fält, så blir det säkert en liten prestandavinst.

Sen beror det mycket på hur väl man normaliserat databasen. Rätt gjorda tabeller och relationer gör att man kan få tag på mycket mer information både snabbare och enklare.

/T

Medlem sedan jan. 2001332 inlägg
#9

Hmmm....

Känns som om alla säger samma sak fast på en himla massa olika sätt...

:OO :p :e

256 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)