19. december 2002 - 19:23
Der er
31 kommentarer og 2 løsninger
MS SQL server >>> MS Access ???
En bekendt påstår at Access databaser ved brug i webløsninger svarer MEGET hurtigere end en SQL server såfremt det drejer sig om at hente recordssets og altså ikke om deciderede opdateringer af databasen. Det er jeg meget uforstående overfor - kan det virkelig passe at Access er hurtigere til at ekspedere recordssets end SQL server ????
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
19. december 2002 - 19:24
#1
Han skriver bl.a. følgende: "Access er meget hurtig til at levere data i forhold til en SQL server, nogle af vores test viser at Access er 4-6 gange hurtigere end MS SQL, både ved læsning og skrivning. Har man derimod mange brugere der skriver til Access samtidigt, vil den ikke kunne komme i nærheden af en SQL server."
19. december 2002 - 19:25
#2
Det skal siges at vores case scenario er et website der har ca. 6000 besøgende om ugen !
19. december 2002 - 19:39
#3
Hmmm. Han har fuldstændigt ret i at Access ikke er godt til mange samtidige opdateringer. M.h.t. læsning, så er der 2 forskellige scenarier: 1) applikation og Access database på samme server versus applikation og SQLServer på samme server 2) applikation på en server og Access databse på mappet drev på anden server versus applikation og SQLServer på to forskellige servere SQLServer vil være hurtiger end Access i scenarie #2. Men jeg vil faktisk godt tro på, at Access er hurtigere end SQLserver i scenarie #1.
19. december 2002 - 19:47
#4
Scenarie: Antal brugere: 6000 pr uge (ikke opdateringer MEN læsninger) Application og access database på samme server versus Application og SQL server på to forskellige servere ???
19. december 2002 - 19:48
#5
Det kan jeg ikke få til at passe. De tests jeg har kørt har vist det modsatte. SQL Serveren er væsenlig hurtigere til at hente recordssets end Access. Man har dessuden muligeheden for at optimere yderligere ved at bruge stored procedures og så går det stærkt :) Sup.
19. december 2002 - 19:51
#6
Spørgsmålet er om hans netværk eller SQL Server er belastet. De tests jeg har kørt med SQL Serveren har været sammen med IIS 5.0 på samme maskine. Det er muligt at hans acces svarer hurtigere når den ligger på samme maskine. Sup.
19. december 2002 - 19:56
#7
Altså med 6000 besøgende om ugen, så er performance et teoretisk issue. 6000 besøgende per uge og 10 minutters besøg = 3 samtidigt besøgende Hvilket næppe er et problem for nogen database.
19. december 2002 - 19:58
#8
19. december 2002 - 19:59
#9
sup> Det virker meget logisk at: applikation--database library--disk fil er hurtigere end: applikation--database library--net protoko--database server--disk fil
19. december 2002 - 20:01
#10
sup> Det link du angiver taler netop om størrelsen og antallet af flytninger af data, hvilket kun er et problem når der er 2 systemer.
19. december 2002 - 20:09
#11
Yep. Giver arne ret i at perfermance kommer nok ikke til at spille ind i det pågældende scenarie, hvor ham gutten faktisk kan have ret i at hans Access er hurtigere fordi den ligger på webserveren. Sup.
19. december 2002 - 21:32
#12
vil det sige at konklusionen er at Access rent faktisk kan være hurtigere end en velfungerende SQL server ???
19. december 2002 - 21:39
#13
Hvis det kun er read access og hvis databasen befinder sig på samme server som applikationen: ja. Og det er altså også 2 ret restriktive betingelser. (og man kan også spørge: hvorfor overhovedet bruge en database i den sammenhæng)
20. december 2002 - 13:59
#14
Problemet er at applicationen på nuværende tidspunkt nogen gange for serveren til at gå i 100% i processoraktivitet. Kan det skyldes at Access ikke kan følge med ??? Eller mener I at det umiddelbart skyldes dårlig asp kode ?
20. december 2002 - 14:51
#15
Hvis I bruger nogle meget komplekse queries med masser af joins og specielt masser af funktions-kald, så kan Access godt være meget CPU krævende. Men i alle normale tilfælde bør selve database delen være IO bound med lav-medium CPU forbrug. Så det er det mest sandsynelige, at det er din ASP, som er for tung.
20. december 2002 - 14:53
#16
Hvad i min ASP kode kunne det f.eks. være, som crasher/belaster serveren ??? Jeg ved at der ikke er nogle deciderede kodefejl - men der kan selvfølgelig måske godt være noget kode, der kunne skrives på en smartere måde...
20. december 2002 - 14:54
#17
Det skal lige nævnes at det er nogle MEGET enkle queries der bliver sendt til databasen - ingenting med joins overhovedet !
23. december 2002 - 11:12
#18
Endnu engang. Access er ikke hurtigere end en velfungerende SQL server. Hvad fylder din Access database i MB? Hvor mange poster er der? Hvor mange poster finder den frem når du siger cpu'en på serveren går i 100%? Kan ikke udlukke af det er din kode hvis du ikke lukker dine database connections rigtigt. Sup.
23. december 2002 - 11:26
#19
Jeg lukker ALLE connections korrekt ! Basen fylder 3,5 MB ! Der er ikke voldsom mange poster i basen - i den største tabel måske nogle hundrede... Jeg hælder selv mest til at det måske skyldes serverkonfigurationen !
23. december 2002 - 11:48
#20
Ja det må det være og databasen fylder jo ikke noget. Hvilken webserver kører du med? Du siger at serveren går i 100% belastning, hvor længe og er det de samme filer den gør det ved hver gang? Har din webserver crashet på noget tidspunkt? Sup.
23. december 2002 - 11:57
#21
3.5 MB database, readonly og simple queries bør køre lynene hurtigt. Data bør ligge i disk cache og skal bare flyttes fra memory til memory. Jeg tror på, at det er ASP koden.
23. december 2002 - 11:59
#22
Problemet er at hjemmesiden bliver hostet på en server, jeg ikke har adgang til. Så jeg ved ikke så meget andet end at de benytter IIS. Men jeg takker for jeres svar - jeg synes da jeg er kommet lidt videre...
23. december 2002 - 12:01
#23
Enig det bør gå hurtigt. Kunne være fedt hvis vi kunne se noget af koden... Sup.
23. december 2002 - 12:34
#24
vi er helt nede i noget så simpelt som følgende: Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT * FROM sider WHERE ID = " & ID rs.Open strSQL, strDSN, 1, 1 response.write rs("indhold") funktion = rs("funktion") rs.Close Set rs = Nothing
23. december 2002 - 12:58
#26
Kører da fint. Sup.
23. december 2002 - 13:06
#27
I know - det gør det bare ikke altid...
23. december 2002 - 13:28
#28
Måske hoster serveren for mange sites og bliver belastet på nogle tidspunkter. Jeg undrer mig over at du nævnte at serveren kunne gå på 100% belastning, hvis du siger sitet er hostet på en ekstern udbyder. Hvordan kan du se serverens belastning :) Sup.
23. december 2002 - 13:30
#29
Jeg har en dialog med server-administratoren som har fortalt mig hvad der sker nogen gange...
23. december 2002 - 13:32
#30
kan I ikke begge give mig et svar - så jeg kan komme af med nogle points...?
23. december 2002 - 13:33
#31
øh - dvs. sup, da jeg kan se at arne_v har smidt et svar !
23. december 2002 - 13:36
#32
Okay der var måske noget galt på serveren. Fedt du fandt ud af det. Sup.
23. december 2002 - 13:39
#33
Takker mange gange for jeres indsats :-)
Kurser inden for grundlæggende programmering