Avatar billede kaage Nybegynder
30. juli 2002 - 10:15 Der er 11 kommentarer og
1 løsning

Objekter / Forespørgsel

Hej,

Jeg har en db hvor jeg skal hente data ud fra forespørgseler, men det går sindsygt langsomt !!! Er der nogen der ved hvordan man kan optimere dette. Eller endnu bedre, forklare hvorfor ??

Jeg har lidt på fornemmelsen, at den går samtlige af mine records igennem...

Mere info gives gerne.

Kaage
Avatar billede terry Ekspert
30. juli 2002 - 10:34 #1
There could be a number of reasons!

Are you using indexes?
How much data (records)
query with many JOINS!
Avatar billede kaage Nybegynder
30. juli 2002 - 10:41 #2
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/db.mdb")
Conn.Open DSN

strSQL = "SELECT ModelNr, Salgsmånede FROM XXX Where Id = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)
%>
Avatar billede kaage Nybegynder
30. juli 2002 - 10:42 #3
og ja, der er rigtig mange records, men ikke i forespørgslen. Ved ikke lige hvad indexes er ?? Har ikke brugt JOINS... Hjælper det dig lidt mere ???
Avatar billede terry Ekspert
30. juli 2002 - 10:47 #4
OH! NOW we find out that we are talking ASP, no mention of that in your original question!

FIRST, make sur ethat you areusing INDEXES on the fields which you use in your WHERE clause

WHERE SomeField = .....

Somefield SHOULD be indexed.

ALSO, Access will return ALL data to the server and evaluate it to see what records in needs to return. Thats the way Access works, it IS NOT a dB server
Avatar billede terry Ekspert
30. juli 2002 - 10:47 #5
and again that was an answer!
Avatar billede kaage Nybegynder
30. juli 2002 - 10:52 #6
hmm er ikke helt med - har du evt. et link til en side hvor jeg kan læse  mere om det.. altså indexes (så skal du nok få dine points !)
Avatar billede terry Ekspert
30. juli 2002 - 11:13 #7
an index is like a telephone book directory. It lists the data in a specific ORDER which makes it easier to find.  This isnt something only Access  does, ALL relational databases use indexes.

I cantfind a specific link but I am sure you should be able to find one yourself!
Avatar billede soerens Nybegynder
30. juli 2002 - 12:53 #8
Problemet er blevet løst!

Jeg fik fat i en kopi af Kaage's database, og lagde mærke til at der var omkring 20 JOINS i forespørgslen.

2/3 af dem var ikke nødvendige, og efter lidt optimering af forespørgslen kører skidtet nu en hel, del bedre.

Kun én tabel i databasen indeholdt nok records til at det kunne betale sig at oprette et index på den. Dette drejede sig om en Postnr. tabel, som blev inkluderet i forespørgslen, men ellers ikke brugt overhovedet.

Heh, det er faren ved at bruge Access; det er ALT for nemt at udvikle noget i den, hvilket gør at "newbies" lynende hurtigt får designet et database-layout som bryder alle regler for nedbrydning i normalformer osv osv ;-)

Bare behold pointene Terry, jeg afregner med Kaage på en anden måde (min bil trænger til at blive vasket ;-)

/Soerens
Avatar billede terry Ekspert
30. juli 2002 - 12:58 #9
? How can you get hold of his dB?
He said there were no JOINS!
Avatar billede soerens Nybegynder
30. juli 2002 - 13:04 #10
Han er en af mine venner, og jeg arbejder af og til som freelance hardcore udvikler for det firma han er ansat i.

Selvom han er en KANON designer, så ved han ikke så meget om databaser ;-)

Hvordan i alverden skulle man også vide hvad en JOIN er, når det bare er at drag'n'drop'e en masse tabeller inde i query-designeren i Access?

Husk på, at med Access kan du sagtens lave en vildt genial og kompliceret databaseløsning UDEN at vide hvad en SQL-sætning er!

Håber jeg ikke fornærmede dig alt for meget Kaage, ellers ved du jo hvor jeg bor ;-)

/Soerens
Avatar billede terry Ekspert
30. juli 2002 - 13:31 #11
Hi Soerens>That does expalin things :o)
Avatar billede kaage Nybegynder
30. juli 2002 - 13:38 #12
GGRRRR, Soerens !! GRRRRR... Og lige som note, så er det ikke mig der har lavet databasen !!!!!!
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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