Avatar billede dank Nybegynder
24. april 2004 - 20:36 Der er 12 kommentarer og
1 løsning

Where performance spørgsmål

Sidder og forsøger at få lidt mere viden omkring database performance.

Hvis man benytter WHERE er det så korrekt at søgningen (Set fra serverens synspunkt) forgår "nedaf til højre) således illustreret

a b c
- - -
1 2 3
4 5 6
7 8 9

Hvis db'en læser på denne måde vil det således være bedst at placere de felter som der skal være selectes med WHERE helt ude til venstre?

Altså

SELECT * FROM tabel WHERE A=4

Vil være hurtigere fremfor

SELECT * FROM tabel WHERE C=6

korrekt/ikke korrekt forstået?
Avatar billede dank Nybegynder
24. april 2004 - 20:37 #1
tillægsspørgsmål

Hvad er forskellen i performance på INNER JOIN fremfor (full) OUTER JOIN
Avatar billede thedeathart Nybegynder
24. april 2004 - 20:41 #2
det er jo altid hurtigt at læse det der står først..
men normal går det så hurigt at det er lige meget..

Opstil dem så de er overskuelige, det er vigtigst
Avatar billede arne_v Ekspert
24. april 2004 - 20:41 #3
Principielt er den slags database specifikt.

Men jeg vil vurdere at det er ikke korrekt for alle normale databaser.

Database serveren læser en stor chunk data op fra disk til memory og finder data
i memory. Og om noget ligger først eller sidst bør ikke betyde noget.

Den behøver iøvrigt ikke gemme felterne i samme rækkefølge som du har angivet dem i.
Avatar billede dank Nybegynder
24. april 2004 - 20:44 #4
thedeathart> Definér normalt? :o)

arnve_v> fint nok.. i mit tilfælde kan data/index'er ikke ligge i RAM.. Og hertil er der vel garanteret forskel på MS-SQL, MySQL&MyISAM/InnoDB o.s.v.?
Avatar billede arne_v Ekspert
24. april 2004 - 20:45 #5
Igen database specifikt.

Logisk set bør en inner join være lidt hurtigere end en outer join.
Avatar billede arne_v Ekspert
24. april 2004 - 20:48 #6
Det er ligegyldigt at hele tabellen ikke kan være i RAM.

Den læser stadig en klump data op i memory med en eller flere rækker i.

Og opererer så på den klump memory.

Hvis en række ikke kan være i memory, så må det skyldes BLOB'er/CLOB'er
og de håndteres normalt specielt af databasen.
Avatar billede lap Nybegynder
24. april 2004 - 21:28 #7
og indexes ændrer logikken.. :-)
Avatar billede arne_v Ekspert
24. april 2004 - 21:30 #8
Det tror jeg ikke. Indexes på ON felterne vil speede begge op men jeg kan ikke
helt se hvorfor det skulle ændre på forholdet.
Avatar billede lap Nybegynder
24. april 2004 - 21:34 #9
logikken ændres på den måde, at index loades først (som chunk) - reference findes, og data hentes fra tabel. I visse tilfælde kan dette være uhensigtsmæssigt - hvis datamængde er for lille.
Avatar billede dank Nybegynder
29. april 2004 - 21:14 #10
opretter i svar

arne_v> kunne jeg ikke få dig til at oprette svar første gang fremover :) Ville gøre det lidt nemmere :)
Avatar billede lap Nybegynder
29. april 2004 - 21:18 #11
ingen points til mig - send dem til arne_v :-)
Avatar billede arne_v Ekspert
29. april 2004 - 21:20 #12
svar

jo ...

(jeg krummer bare altid tæer når jeg ser andre ligger et svar som så er totalt
misforstået)
Avatar billede arne_v Ekspert
29. april 2004 - 21:20 #13
Jeg prøver at ramme den lille ude til højre igen
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