Avatar billede fredand Forsker
20. september 2012 - 12:06 Der er 4 kommentarer

Performance win or loss for char vs varchar2

Hello!

We got an issue were we neeed to choose between char or varchar2 for a column.
The value vill probably be 21 char's of lenght.

Some say that if we know the fixed length for the value choose char.

But some say that it doesn't matter if we go for varchar2 and set it like varchar(50), just to be sure if it will expand.

This table will contain several milions of rows.

What do you think, is there a performance win to choose char instaed of a varchar2(50) for values that probably will just be 21.

All opinions are most welcome!

Best regards
Fredrik
Avatar billede michael_stim Ekspert
20. september 2012 - 12:46 #1
Nu lægger jeg ikke hovedet på blokken, men er næsten sikker på at Oracle kun tager det plads den behøver, hvor f eks Access reserverer plads til alle angivne chars. Så umiddelbart vil jeg ikke tro det gør nogen forskel, permancemæssigt, i Oracle.
Avatar billede michael_stim Ekspert
20. september 2012 - 12:47 #2
Eller tager mere plads for den sags skyld.
Avatar billede arne_v Ekspert
20. september 2012 - 15:26 #3
21 lang streng i CHAR(21):

21 + 21 tegn

21 lang streng i VARCHAR2(21):

21 + 21 tegn

21 lang streng i CHAR(50):

50 + 50 tegn  (padded med space)

21 lang streng i VARCHAR2(50):

21 + 21 tegn

En CHAR som er "for stor" vil spilde plads. Hvilket maaske vil resultere i en marginal forringelse af performance.

Men 29 bytes x 3 millioner raekker er kun 87 MB hvilket er nul og niks paa moderne HW.

Jeg mener at beslutning boer drives af forskellen paa funktionalitet i CHAR og VARCHAR2.

Det er midt indtryk at CHAR og space padding kan drille en del.

Og det er nok vaerd at undgaa.
Avatar billede fredand Forsker
22. december 2012 - 16:03 #4
Hello Arne!

As you said we experiance some "drille" with space and CHAR. At the end we went for VARCHAR2.

Please give a svar so I can give the points to you and close this one.

Best regards
/Fredrik from sweden
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