NöffMedlem sedan nov. 2003569 inlägg tjena..
har en tabell så som så här:
Tabell1.
ID
namn
efternamn
telenr
Alternativ 1:
SELECT ID,namn,efternamn,telenr FROM tabell1
Alternativ 2:
SELECT telenr,namn,ID,efternamn FROM tabell1
spelar det nån roll vilken ordning man selectar stuffet rent prestandamässigt?. Har det någon performance impact?.
tohaMedlem sedan dec. 1999707 inlägg Nej, inte i de exemplen du har skrivit där. Det som brukar göra skillnad prestandamessigt är det som man skriver i FROM, WHERE och ORDER. Beroende vilka fält man jämför med eller sorterar på får man kontrollera att det finns index satta, om så krävs för att öka prestandan.
Om jag exempelvis skriver följande uttryck:
SELECT telenr,namn,ID,efternamn FROM tabell1
ORDER BY namn, efternamn
och märker att det går lite väl långsamt så kanske jag ska sätta ett index som inkluderar kolumnerna jag angett i ORDER BY, dvs namn samt efternamn i stigande ordning.
CREATE NONCLUSTERED INDEX IX_namnEfternamn
ON tabell1 (namn asc, efternamn asc)
NöffMedlem sedan nov. 2003569 inlägg Ok, kan man förresten sätta clustrade index på flera kolumner än PRIMARY KEY?
tohaMedlem sedan dec. 1999707 inlägg Nope bara ett klustrat index per tabell. Det behöver inte vara primary key däremot och kan vara en eller flera kolumner.
NöffMedlem sedan nov. 2003569 inlägg Jaså?. Men hur gör man för att sätta ett clustrat index på fler kolumner än PRIMARY KEY ?, eftersom ett clustrat index sätts automatiskt av SQL-servern när man deklarerar en kolumn som är av PRIMARY KEY och sen verkar det vara svårt att bli av med den.
tohaMedlem sedan dec. 1999707 inlägg För att göra det så måste man först skapa tabellen utan nån PRIMARY KEY, sedan lägga till ett klustrat index på den kolumn man vill ha, och sist lägga på ett PRIMARY KEY-constraint på tabellen. Ex:
create table Tabell1
(
[id] int not null,
[name] varchar(50) null
)
create clustered index IX_name ON Tabell1 ([name] asc)
alter table Tabell1
add constraint PK_Tabell1 primary key ([id])
tohaMedlem sedan dec. 1999707 inlägg Och om man skulle vilja ha ett klustrat index satta på flera kolumner (ett index alltså):
create table Tabell1
(
[id] int not null,
[name] varchar(50) null,
[description] varchar(50) null
)
[b]create clustered index IX_name ON Tabell1 ([name] asc, [description] asc)[/b]
alter table Tabell1
add constraint PK_Tabell1 primary key ([id])