Just nu i M3-nätverket
Gå till innehåll

Klustrade index


Anders (interakt.nu)

Rekommendera Poster

Anders (interakt.nu)

Hur gör man för att ta bort ett klustrat index som ju automatiskt skapas på primary key? Jag skulle vilja testa att sätta det klustrade indexet på en annan kolumn än den som är primary key.

 

 

www.interakt.nu

Mötesplatsen kring användbarhet

Länk till kommentar
Dela på andra webbplatser

0) ta backup och kontrollera att du kan återställa backupen.

 

1) ta bort primärnyckeln

 

alter table t drop constraint primary_key_name

 

För att få reda på vad namnet på ett constraint

 

select constraint_name from information_schema.table_constraints

where table_name = 'T'

and table_schema = 'S'

and constraint_type = 'PRIMARY KEY'

 

2) skapa ett klustrat index

 

create clustered index clust on t(npk)

 

3) återskapa primärnyckeln

 

alter table t add constraint primary_key_name primary key nonclustered (pk)

 

Det blir en tung operation om du har mycket data.

 

Länk till kommentar
Dela på andra webbplatser

Jag tycker det låter onödigt komplicerat (beror förstås på vilken databas du har).

 

På en MSSql så kan du göra om det clustrade indexet till ett icke clustrat (ser i alla fall ut så om använde mmc men i bakrunden så tas det clustrade bort och ersätts med ett icke clustrat).

 

När detta är gjort så är det bara att skapa ett klustrat index på den collumn du vill ha det på.

 

Länk till kommentar
Dela på andra webbplatser

  • 2 veckor senare...
Anders (interakt.nu)

Jag lyckades inte med någon av era lösningar... Primary key är en uniqeudentifier. Finns det något annat sätt? Jag kör MSSQL.

 

 

www.interakt.nu

Mötesplatsen kring användbarhet

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...