---
title: "optimering och sånt"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/118541-optimering-och-sånt"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Nöff"
published: "2004-12-22T04:15:38.000Z"
updated: "2004-12-23T09:55:44.000Z"
replies: 6
views: 290
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/118541-optimering-och-sånt"
---

# optimering och sånt

## #1 — Nöff, 2004-12-22T04:15Z

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?.

Permalänk: https://www.webforum.nu/p/118541

## #2 — toha, 2004-12-22T08:34Z

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)
```

Permalänk: https://www.webforum.nu/p/1510255

## #3 — Nöff, 2004-12-22T11:21Z

Ok, kan man förresten sätta clustrade index på flera kolumner än PRIMARY KEY?

Permalänk: https://www.webforum.nu/p/1510324

## #4 — toha, 2004-12-22T11:36Z

Nope bara ett klustrat index per tabell. Det behöver inte vara primary key däremot och kan vara en eller flera kolumner.

Permalänk: https://www.webforum.nu/p/1510329

## #5 — Nöff, 2004-12-22T21:42Z

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.

Permalänk: https://www.webforum.nu/p/1510530

## #6 — toha, 2004-12-23T09:51Z

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])
```

Permalänk: https://www.webforum.nu/p/1510570

## #7 — toha, 2004-12-23T09:55Z

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])
```

Permalänk: https://www.webforum.nu/p/1510571

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/118541-optimering-och-sånt
