Avatar billede danm Nybegynder
24. august 2006 - 12:47 Der er 6 kommentarer og
1 løsning

For mange forbindelser til databasen.

Hej

Hvad sker der hvis jeg har mange, eller for mange forbindelser til databasen?

Lige nu bruger jeg access og denne skifter jeg på et tidspunkt ud med sql server 2005 express. Jeg koder i vb2005.

Jeg har et program hvor der er en hovedcomputer og en klient computer. Begge sender forespørgsler til samme database når en bruger foretager en handling. Ydermere vil jeg gerne have en backgroundworker i hovedprogrammet til at rydde op i databasen samt indlæse nogle filer til den.

Kan der ske noget ved at mit program prøver at åbne flere forbindelse til databasen? Det jeg mest tænker på er om ado.net (som vist er database styringen i vb2005) sætter de forskellige forbindelser i kø når der er for mange, eller om programmet går ned. Det er vist mest med access det er et problem, sql server skulle vist kunne klare temmelig meget.
Jeg har aldrig en forbindelse åben hele tiden, mens programmet kører. Jeg åbner først forbindelsen når der skal sendes en sql kommando afsted, og lukker den efterfølgende (med mindre jeg bruger en datareader, så lukkes den først når den er færdig)
Avatar billede arne_v Ekspert
24. august 2006 - 13:11 #1
hvis dine programmer tilsammen overstiger det maksimale antal connection får
du en exception ved connect

hvis du har for mange connection så kører din applikation langsont
Avatar billede danm Nybegynder
24. august 2006 - 23:48 #2
Ved du hvor mange jeg kan have til en access database?
Avatar billede arne_v Ekspert
25. august 2006 - 02:11 #3
Performance går i bund inden du rammer en begrænsning.

Jeg vil sige 2 connections som opdaterer eller 10 connections som
forespørger er max. med god performance.

Men husk at du kan understøtte betydeligt flere brugere end samtidige
connections. Ofte en 10-20 gange flere.

Alt afhænger af din applikation, men ovenstående er sådan lidt tommelfinger regler.
Avatar billede danm Nybegynder
25. august 2006 - 11:58 #4
Ok, så vil det nok ikke være så galt med det program jeg har indtil videre. Der kan max være 3 sådan som det er sat op lige nu. Jeg vil lige have lavet programmet før jeg skifter til sql server så skulle lige sikre mig at det ikke gik død hele tiden når det bliver sat op.

Lige et hurtigt spørsgmål dog..:
Sætter programmet selv forbinelserne i kø hvis jeg f.eks. på det ene program gemmer noget og det andet program læser noget i databasen? Jeg kunne forestille mig at det kunne give lidt komplikationer hvis der bliver skrevet til en record samtidig med at der bliver læst, men jeg ved heller ikke helt hvordan sådan en database arbejder.

Smid svar og tak for hjælpen igen.. Du har efterhånden hjulpet mig meget med mit program arne_v..  (o=
Avatar billede arne_v Ekspert
26. august 2006 - 01:11 #5
I de simple tilfælde så sker det helt automatisk.

I de mere avancerede tilfælde skal du bruge transaktioner og sætte transaction isolation
level (SQLServer har god support for dette - jeg er faktisk ikke helt klar over
hvilke transaction isolation levels Access supporterer)

og svar
Avatar billede arne_v Ekspert
26. august 2006 - 01:16 #6
Avatar billede arne_v Ekspert
26. august 2006 - 01:16 #7
dog kan jeg intet finde om transaction isolation level
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
Kurser inden for grundlæggende programmering

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