20. november 2002 - 20:50Der er
37 kommentarer og 1 løsning
Hvilken database skal jeg vælge??
Hej!
Jeg skal udvikle et system til en mindre virksomhed. Der skal være mulighed for at omkring 30-50 clienter kan kommunikere med databasen samtidig. I databasen skal der være op til 250.000 records. Hvilken database skal jeg vælge til systemet ?
I forvejen har virksomheden en access-database med records som de gerne vil fører videre over i den nye. Kan dette gøres let og hvordan?
Du kan i og for sig sagtens køre videre med din access db, bare husk at lukke dine forbindelser så snart du er færdige med dem, så er der ingen problemer. Slet ikke med så lidt trafik du nævner.
Et andet alternativ er MS SQL (som dog koster nogle penge), eller MySql. Personligt ville jeg fortrække MS SQL, men er der allerede en access db og trafikken ikke er væsentligt større end det du nævner, ville jeg nok fortsætte med access.
Hvis der sider 30-40 samtidige klienter og pumper på databasen via kompliseret joins mm., så vil Access helt sikkert gå i knæ... Det nemmeste vil være at konveretere til MS SQL, da den supporterer den samme variationer af SQL sporget. I hvert tilfælde skal der minimale rettelser til.
Du kan ikke regne med at skifte til mySql, uden at skulle skrive en række SQL sætninger om.
Det kommer jo selvfølgelig også an på appliktionen. Få SQL'er med et "flat" indhold, så er der nok ingen problemer. Men er det sådan, at der udføres 5-10 SQL'er, for hver side/form i applikationen, og der ofte joines på store tabeller, så vil ACCESS nok ikke klare den mere.
Helt enig i at man kan komme langt med en Access database og nogen ASP sider. Bruger selv tricket med applications variabler på en side. Men en "seriøs" applkation, hvor brugeren kræver nye og friske data konstant, her kan man ikke bruge sådanne trick.
F.eks hvis en klients påvirkning, øjeblikeklig skal kunne aflæses på alle andre klienter.
Ok, det er få facts til at besvare dit spørgsmål. Vi bliver nødt til at vide noget om mere om hvad det er du forsøger at lave. Hvor mange tabeller? Hvor mange data i de 250000 records (billeder, tal m.m.) Hvor mange transaktioner i timen, hvor komplekse er dine transaktioner (E.g. indsætter de bare 1 række i en tabel eller 2-3 rækker i 8 tabeller). Hvad med backup, hvor vigtigt er det, skal systemet vokse på sigt? (flere brugere, mere data). Vil du kode dig ud af performance problemer ved flere brugere eller vil du bare kode og så lade databasen klare problemerne med mange samtidige brugere? Er der mange updates og selects samtidigt fra forskellige klienter?
Der kunne sikkert stilles mange flere spørgsmål, men fortæl lidt mere, så får du også nogle lidt bedre svar!
der er 4 tabeller. i den ene er der 50 rækker og de andre er der ca 20 i. Det er kun tekst der skal være i tuplerne. der vil sikkert være omkring 500 - 1000 transaktioner i timen og de er ikke særlig komplekse (2 funktioner indsætter 20 og 30 rækker i den store tabel, men ikke noget med at sætte ind i flere tabeller på en gang). Backup er MEGET vigtigt! Systemet vil vokse til omkring 150-200 bruger men det er først om et par år (jeg vil egentlig gerne være fremtidssikret :) Jeg vil ikke binde mig til databasen så jeg vil lave noget persistence layer (http://www.ambysoft.com/persistenceLayer.pdf) for at undgå høj kobling. jeg vil gætte på at der nok kan forekomme et par updates og selects fram forkellige klienter, men det ka jo ikke være vildt mange hvis systemet kun har 100 brugere.
at the moment there are 199 users "logged on" to eksperten, at a guess there are max 50 writing to the dB. A connection is opened for a matter of seconds, so evn though all 30 to 50 of your clients were using the application it would only a few who are actually accessing the db. If yoo code correctly closing your connections after use AND use error handling (try again if no connection, or some other error) then Access can EASILY do the job and at a fraction of the price of SQL Server.
jeg fatter simpelthen ikke at man kan få lov til at bruge databasen fra en kontorpakke som grundlag for en seriøs applikation nogen steder. Alt andet må gerne fejle, men data må og skal være konsistent og uden fejl.
I et firma jeg arbejdede hos var den centrale database en Accessdatabase med 2gb+ data. Mit råd er: LAD VÆRE med at bruge Access (med mindre du er helt sikker på at det kun er dig selv, der skal bruge systemet), du kommer aldrig af med den igen...
who is talking about 2 Gb + data ? nad just out of interest Access can have a MAX 2 GB. Also, Access is more than likley themost widely used dB in the world, and not just for keeping track of telephone numbers.. Do you want some examples?
2gb+ var vist husket forkert :) (men vi nærmede os hastigt den grænse...)
tja, mine erfaringer med Access i organisationer er altså bare at det tit sker at Access- databasen "skal repareres" (det skriger f.eks. til himlen at Access har en function ved navn 'repairDatabase') og at folk ikke kan arbejde pga. nedetid/indlæsning fra backup og hvor man ikke har styr på hvilke data, der er gyldige/ugyldige. Og den slags situationer koster knapper!
terry> 'But as said previously, quite often the problem is the programmer who made it' Som dygtig programmør kan man såmænd få en tekstfil til at være sin database, det er bare lidt sværere. Hele ideen med at bruge en lødig databaseløsning er jo at der er andre der har gjort (noget af) arbjedet for een. Hvis man skal bruge Access, skal man ihvertfald død pine sikre sig at der kun er EEN forbindelse af gangen.
Mht.at vride den bedst mulige performance ud af Access: det er flot! Jeg var også imponeret over hvor meget C64 programmører kunne vride ud af 64'eren. Men det ændrer altså ikke på det faktum at Access er et redskab i kontorpakken og ikke en professionel databaseløsning.
Jeg er glad for at jeg har fået så mange kommentarer omkring access for det viser at der er mange der bruger den og mange der har erfaringer med den. At der så er forskel på meningerne det er noget andet :)
Jeg må indrømme at jeg heller ikke mener at access er noget der bør bruges til kommercielle/professionelle applikationer. Derfor søger jeg en anden database som bliver brugt i mere professionelle applikationer.
Men hvilken skal database skal jeg vælge hvis det ikke skal være access ?
MS SQL er en af de muligheder i nævner. Men hvad gør den bedre end access ?
* stored procedures * support for flere samtidige brugere (løser concurrency problemer) * bedre/mere nuanceret låsning af felter, sider og tabeller * transaktionslog og mulighed for backup fra denne * konsistens * stabilitet * administrationsværktøjer * ...
Bruger selv Oracle, (men den er endnu dyrere end MS SQL Server)
>terry: I know that sql server costs appr. 40000,- kr for a license. This is 1-1½ months of salary for a DBadmin or softwaredeveloper. I bet that the investment is paid off multible times in the long run...
ved valg af database må du lave en risikovurdering (se evt. Pressmans bog om softwareengineering): hvad ville konsekvensen være af tab af data (mister I kunder/goodwill/patienter? (sidstnævnte er ikke godt!) forkerte data tab af alle data (går virksomheden i stå?)
Prædiken Access bør ikke bruges til forretningskritiske løsninger.
Mit råd jeg har haft meget gode erfaringer med Interbase/Firebird som er open source og kan køre på Linux/Windows. Jeg har været med til at erstatte en MS Sql database med en Interbase, og opnåede bedre svartider, samt en væsentlig besparelse på licenserne. Data: > 1 mio records/tupler, > 1 Gb data. Interbase/Firebird fungere med almindelig SQL, og udfra din beskrivelse kan det sagtens være "fremtidssikret".
Forresten God ide med at lave et persistens lag, husk bare på at det er en relationel db, du bruger og ikke eks. Javaspaces.
nzc>Your question was "Hvilken database skal jeg vælge??". HOW d you decide what the correct answer is and how do you decide to share out the points? Well one thing we can be sure of is you can NOT expect help in the future when we use our time in trying to help you and in the end you take the points yourself :o(
nzc>there are a nember of people who contributed to this question besides me so I am NOT "whining" on my behalf but for others whoo have used their time on you. It would have been in place to reward all users in a question like this where in fact there is NO hard cut answer. As a said previously "one thing we can be sure of is you can NOT expect help in the future" thats it and thats that :o) GOOD NIGHT!
Synes godt om
Ny brugerNybegynder
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.