Avatar billede Lasse Novice
06. juni 2007 - 16:57 Der er 2 kommentarer og
1 løsning

Er det smart med nvarchar(30) baseret unique key?

Goddag

Spg: Er det lige saa hurtigt(eller rettere sagt, er det langsomt...) at have en primary key som nvarchar(30) istedet for bigint?

Lidt historie:

I min db har jeg en tabel "Parts" hvori 6 kolonner refererer til en anden tabel "Geometries". Geometries indeholder bla. kolonnerne GeometryId, Path, Min, Max osv. Idet jeg laver et udtraek skriver jeg det saaledes:

SELECT * FROM Parts
  LEFT OUTER JOIN viewGeometries1 ON Geometry1Id = PartsGeometry1Id
  LEFT OUTER JOIN viewGeometries2 ON Geometry2Id = PartsGeometry2Id
  LEFT OUTER JOIN viewGeometries3 ON Geometry3Id = PartsGeometry3Id
  LEFT OUTER JOIN viewGeometries4 ON Geometry4Id = PartsGeometry4Id
  LEFT OUTER JOIN viewGeometries5 ON Geometry5Id = PartsGeometry5Id
  LEFT OUTER JOIN viewGeometries6 ON Geometry6Id = PartsGeometry6Id
WHERE PartId ....

Hvor ViewGeometriesX er views over Geometries tabellen. Disse er defineret saaledes at der ikke kommer navne kambolage.

Hvert view indeholder 2 kolonner:

1) Id
2) Path

og jeg er interesseret i Path.

Som jeg ser det, ville det vaere smartere at bruge Path som primary key, eftersom jeg saa ikke skulle lave alle de outer joins.


Hvad mener i om det?
Avatar billede Lasse Novice
06. juni 2007 - 16:59 #1
Som jeg ser det, ville det vaere smartere at bruge Path som primary key, eftersom jeg saa ikke skulle lave alle de outer joins .... da jeg i Parts tabellen saa ville have Geometry1Path istedet for Geometry1Id og Geometry2Path istedet for Geometry2Id osv.

Hvad goer man i praksis?
Avatar billede Lasse Novice
06. juni 2007 - 21:55 #2
Jeg har lavet nogle tests med parts tabel paa 500000 rows og geometries tabel paa 500000 rows, og det viser sig at overheadet ved at kigge 6 gange i samme tabel er stoerrere end ved brug af varchar primary key.

Kan vi faa en diskussion oimkring dette her.... Jeg er interesseret i pros & cons.
Avatar billede Lasse Novice
09. marts 2008 - 22:51 #3
lukker spg.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester