Avatar billede fedespil.dk Nybegynder
12. maj 2002 - 19:50 Der er 11 kommentarer og
1 løsning

Hvad kan en Access-database holde til?

Min side, http://www.FedeSpil.dk, kører rimeligt langsomt, synes jeg, og jeg er bange for, at det er, fordi Access-databasen bliver overbelastet.

Siden har ca. 900 Chart-hits om dagen og vel dobbelt så mange sidevisninger, og der er tit over 30 online på samme tid.

Kan det overbelaste Access-databasen og få siden til at blive utrolig langsom? Eller skal der mere til? I givet fald hvor meget, vil jeg gerne have at vide.

Hvis det skyldes Access-databasen, håber jeg, at nogen af jer har nogle links til, hvordan man benytter MySQL i ASP - det skal være guides, der forklarer det helt fra bunden.

På forhånd tak for hjælpen.
Avatar billede error_404 Nybegynder
12. maj 2002 - 19:52 #1
En access database kan ikke klare meget mere end 60 samtilige bruger tilslutningen!

Du bør nok opgradere til MySQL.. kender dog ikke nogle sider omkring det, men en access database er for lidt til dine behov =)
Avatar billede terry Ekspert
12. maj 2002 - 19:55 #2
Take a look at this question!
http://www.eksperten.dk/spm/209672
Avatar billede terry Ekspert
12. maj 2002 - 19:56 #3
in particular teh comment 11/05-2002 10:37:20 :o)
Avatar billede fedespil.dk Nybegynder
12. maj 2002 - 20:10 #4
Oki, tak for svarene. Tjekker lige links!

Hvis andre har kommentarer eller svar, så kom venligst med dem.

Så bliver jeg så glad :o)
Avatar billede terry Ekspert
12. maj 2002 - 20:13 #5
I just had a look at your site and it does seem to be a bit slow!
If you read the comments I make in the other question http://www.eksperten.dk/spm/209672 you will see that I suggest that as soon as you have read the database then the connection should be closed!
Now I have NOT had a GOOD look at your site but I cant see ANY place where users can WRITE to your Access database, so therefore you are only reading data from the datbase and this should be NO problem!

Try closing the connect once you have read your data and see if it helps!
Also try compacting your database (can only be done when there are no users)
Avatar billede terry Ekspert
12. maj 2002 - 20:15 #6
Nice site :o)
Avatar billede terry Ekspert
12. maj 2002 - 20:20 #7
I can see that you do have a forum where there will be updates!
A simple solution was to actually have two databases, One for the forum and another for the read only topics!
Avatar billede fedespil.dk Nybegynder
12. maj 2002 - 21:35 #8
Kan det ikke trække databasen ned, hvis mange læser fra den?

Forummet, databasen og poll'en er 3 forskellige databaser, så på den måde har jeg sikret mig.

men kan det ikke være databasens skyld, at den er langsom, når folk kun læser fra den?
Avatar billede terry Ekspert
12. maj 2002 - 21:53 #9
Normally read operations DO NOT put so much load on the database as writes do. When you say "3 forskellige databaser" do you mean three .mdb files or 3 tables in one mdb file? There is a BIG difference!

An Access database tends to "GROW" when write operations take place, this is not normally the case when only read operations take place.

Have you any idea WHICH database (if it is three databases and not tables) which is slow?
You should always close connections as soon as possible, also when users only read from the database. If connections do not get closed then resources are NOT being freed!

My advice is close connection AS SOON AS THE OPERATION (READ OR WRITE) IS FINISHED!
Avatar billede fedespil.dk Nybegynder
12. maj 2002 - 22:20 #10
Jeg mener 3 forskellige mdb-filer, og jeg er næsten helt sikker på, at det databasen, hvor nyheden skal loades fra, der er langsom - er dog ikke helt sikker. Folk skriver dog sjældent til databasen, og hvis det holder stik, at det ikke trækker ned at læse fra den, burde det ikke være den.

Hvordan sørger man for at "close" connections?
Avatar billede terry Ekspert
13. maj 2002 - 08:09 #11
Here is an example in Visual Basic but ist smuch the same in other languages. Its the last few lines that are important!

Public Sub OpenX()

  Dim Cnxn As ADODB.Connection
  Dim rstEmployees As ADODB.Recordset
  Dim strCnxn As String
  Dim strSQLEmployees As String
  Dim varDate As Variant

  ' Open connection
  strCnxn = "Provider=sqloledb;Data Source=MyServer;Initial Catalog=Pubs;Integrated Security=SSPI; "
  Set Cnxn = New ADODB.Connection
  Cnxn.Open strCnxn
 
  ' Open employee table
  Set rstEmployees = New ADODB.Recordset
  strSQLEmployees = "employee"
  rstEmployees.Open strSQLEmployees, Cnxn, adOpenKeyset, adLockOptimistic, adCmdTable

  ' Assign the first employee record's hire date
  ' to a variable, then change the hire date
  varDate = rstEmployees!hire_date
  Debug.Print "Original data"
  Debug.Print "  Name - Hire Date"
  Debug.Print "  " & rstEmployees!fname & " " & _
      rstEmployees!lname & " - " & rstEmployees!hire_date
  rstEmployees!hire_date = #1/1/1900#
  rstEmployees.Update
  Debug.Print "Changed data"
  Debug.Print "  Name - Hire Date"
  Debug.Print "  " & rstEmployees!fname & " " & _
      rstEmployees!lname & " - " & rstEmployees!hire_date

  ' Requery Recordset and reset the hire date
  rstEmployees.Requery
  rstEmployees!hire_date = varDate
  rstEmployees.Update
  Debug.Print "Data after reset"
  Debug.Print "  Name - Hire Date"
  Debug.Print "  " & rstEmployees!fname & " " & _
      rstEmployees!lname & " - " & rstEmployees!hire_date

  rstEmployees.Close
  Cnxn.Close
  Set rstEmployees = Nothing
  Set Cnxn = Nothing

End Sub
'EndOpenVB
Avatar billede terry Ekspert
13. maj 2002 - 08:10 #12
The example is for the connection and recordset objects.
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