Avatar billede marvinq Nybegynder
01. februar 2008 - 10:33 Der er 10 kommentarer og
1 løsning

Query performance

Hej eksperter

Jeg er lidt i tvivl om hvordan performance er i forhold til et tilfælde, hvor jeg i .asp forespørg i en MsSQL database.

Hvis nu jeg har 6 tabeller, hvor jeg skal bruge data fra alle tabeller, hvad fungerer så bedst og hurtigst??

1. Jeg laver et query for hver tabel, hvor jeg matcher imod primærnøglen.

2. Jeg laver et stort query hvor alle tabellerne er joinet sammen med left outer join. Der joines på primærnøglen på alle de tabeller som joines.

Hvad kører bedst målt på performance??? - og hvordan kan man regne på sådan noget???

På forhånd tak.


/MHQ
Avatar billede terry Ekspert
01. februar 2008 - 10:54 #1
I dont think there can be any doubt.

2. Jeg laver et stort query hvor alle tabellerne er joinet sammen med left outer join. Der joines på primærnøglen på alle de tabeller som joines.
Avatar billede marvinq Nybegynder
01. februar 2008 - 10:56 #2
Okay - men hvorfor??

Og er der stor forskel?? Det er ingen problem for mig at lave det som et stort query, men jeg ville gerne vide hvad gevinsten var.

Men ellers tak for svaret !


/MHQ
Avatar billede terry Ekspert
01. februar 2008 - 10:57 #3
This is the whole purpose of RDBMS/SQL servers. Why would you want to do all of the work by choosing your first option instead of letting the database do it for you?
Avatar billede terry Ekspert
01. februar 2008 - 10:58 #4
The server is optimized to do this.
Avatar billede marvinq Nybegynder
01. februar 2008 - 11:00 #5
Okay, well - that is answer enough for me! :)

Thanks.

/MHQ
Avatar billede terry Ekspert
01. februar 2008 - 11:02 #6
Th emethod yo describe in 1. would have been what you would have used with ISAM (indexed files )databases many years ago. There were no direct relationships between tables as there are today in relational databases.
Avatar billede terry Ekspert
01. februar 2008 - 11:04 #7
You could also consider having a view on the server or even a stored procedure, these would also very likely improve performance.
Avatar billede terry Ekspert
01. februar 2008 - 11:05 #8
Avatar billede terry Ekspert
01. februar 2008 - 11:07 #9
Just noticed in your question "Der joines på primærnøglen på alle de tabeller som joines."

If all tables have the same primary key, shouldnt all the data be in the same table?
Avatar billede marvinq Nybegynder
01. februar 2008 - 11:15 #10
They don't have det same primary key.

I also thought about using stored procedures. :)

Thanks for the great help.


/MHQ
Avatar billede terry Ekspert
01. februar 2008 - 11:22 #11
your welcome, thank you too.
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