Hej!
Jag håller på med ett projekt där jag använder mig av vanlig access databas. Jag undrar nu om jag kan köra detta projekt mot någon annan typ av databas utan att göra stora ändringar i koden.
Olika typer av databaser
17 svar · 788 visningar · startad av pirajan
Visst: MySql(kostar gratis) eller MsSql(kostar plenty)
Hur göra?
Det finns massor av alternativ, bland annat de som Travoni nämner (MsSql är det som stöds bäst, men andra alternativ fungerar i praktiken nästan lika bra). MySql är nog den gratisdatabas som används mest, och därmed är det lätt att få support (och många webbhotell använder den).
Andra icke svindyra alternativ skulle kunna vara FireBird, SQLite och PostgreSQL, för att bara nämna några.
pirajan skrev:
Hur göra?
Ladda hem och installera....:)
MsSql finns i en utvecklingsversion, som heter MSDE. Finns på Microsoft webbplats. Dock bör du tänka på att MSDE inte duger till att driva någon webbplats.
MySQL finns på https://www.mysql.com
Oavsett vilket alternativ du väljer ska du även ladda hem en .NET Provider till respektive databasmotor. MsSql:s provider följer med som standard till .NET
Om jag skrivit alla databaskopplingar till oledbconnections då?
Det går att köra med oledbconnections också, men det är inte lika effektivt.
Jag känner till olika databastyper sedan tidigare, men vad är det för skillnad mellan oledb och sqlclient i .Net? Med vilke kan jag köra MySQL för att lösningen ska vara mest effektiv?
MySqlClient e väl mest effektivt om du ska använda MySql.
dvs. som redan är sagt att man laddar ner MySql Providern.
MsSql finns i en utvecklingsversion, som heter MSDE. Finns på Microsoft webbplats. Dock bör du tänka på att MSDE inte duger till att driva någon webbplats.
Varför inte då?..
Fungerar oxå prima att använda System.Data.Odbc; mot MySQL. Allt du behöver är att ladda mer MyODBC från https://www.mysql.com
OdbcConnection
OdbcCommand
OdbcDataReader
natas skrev:
MsSql finns i en utvecklingsversion, som heter MSDE. Finns på Microsoft webbplats. Dock bör du tänka på att MSDE inte duger till att driva någon webbplats.
Varför inte då?..
Ja, det kanske duger till en liten webbplats, utan särskilt många besökare, men MSDE klarar inte mer än 5 samtidiga frågor (25 användare), utan att börja degradera prestanda betänkligt. Det funkar utmärkt till en viss gräns, men sedan när det inte går så bra längre står man där som ett fån och undrar om man ska lägga 50 papp på SQL Server, eller bygga om allt för någon annan databasmotor.
Ja, det kanske duger till en liten webbplats, utan särskilt många besökare, men MSDE klarar inte mer än 5 samtidiga frågor (25 användare), utan att börja degradera prestanda betänkligt
Men är det inte så att 1 användare använder ju 1 connection typ högst en sekund, sen är han klar med den och släpper den till en annan som gör likadant, så att de ställs i kö ,en websida är ju stateless, servern vet ju inte vilken användare som ställer frågorna, så på en webplats kommer det ju då ta ett tag innan det ställs 25 frågor exakt samtidigt, kanske krävs 500 samtidiga användare för att komma upp i ett sån fråge-kaskad. Eller menar dom kanske istället att man bara kan skapa 25 serverlogins?.
natas skrev:
Men är det inte så att 1 användare använder ju 1 connection typ högst en sekund, sen är han klar med den och släpper den till en annan som gör likadant, så att de ställs i kö ...
Jo, och just detta blir ett problem med MSDE.
natas skrev:
...så på en webplats kommer det ju då ta ett tag innan det ställs 25 frågor exakt samtidigt...
5 frågor, inte 25.
natas skrev:
Eller menar dom kanske istället att man bara kan skapa 25 serverlogins?.
Nej, 25 samtidiga connections, 5 samtidiga frågor. Det äts upp väldigt fort.
Jag kan tänka mig att revidera min kommentar till att lyda "Dock bör du tänka på att MSDE inte duger till att driva någon välbesökt webbplats."
SQL-Server 2005 Express Edition kan man säga är microsofts svar på mySQL som jag förstår det.
Problemet är att det planeras att släppas först den 7:e november och om projektet är kritiskt så rekommenderar jag inte att köra på det.
Om projektet däremot är lite mer hobbybetonat och lansering sker efter 7:e november så tycker jag att du skall ladda ner den senaste CTP-versionen och testa med.
Det finns dock ett flertal begränsningar i express edition. Exempelvis max 4Gb stor databas, och den kan max läsa upp 1Gb av den i minnet. Läs gärna om alla specifika begränsningar här http://www.microsoft.com/sql/2005/productinfo/sql2005features.mspx
I andra fall så rekommenderar jag mySQL som är ett mycket bra gratisalternativ.
Jag kan tänka mig att revidera min kommentar till att lyda "Dock bör du tänka på att MSDE inte duger till att driva någon välbesökt webbplats."
Tja det beror på vad du sätter framför din databasserver, och hur du skriver din kod. Med rätt prestanda insatser och användning av cachade data så klara man sig riktigt långt på en MSDE. Precis som du sa så gäller det 5 samtidiga frågor (har dock för mig att det inte finns någon begränsning för antal anslutningar), man skall också tänka på att ASP.NET har en default gräns på att hantera 25 samtidiga anrop per processor. Det betyder att om dina databaser frågor tar max 1/5 av tiden för att exekvera sidan, så blir det (teoretiskt) möjligt att köra 25 samtidiga användare på en sida med hjälp av MSDE. Och 25 samtidiga användare är garanterat över 200 sessioner på sidan samtidigt, så det tar ett tag innan MSDE har blivit för liten.
Men som sagt, man kan döda servern rätt snabbt med dåligt skriven kod, vilket även skulle inneburit problem för andra DB's.
- M
Okej, jag måste erkänna att jag hade fel. Själva siffrorna stämmer, men det finns tecken på att många lyckas driva sajter med MSDE på ett förtjänstfullt sätt, och det får jag smälta. :)
Jag tror jag ska ta och testa MSDE på en server snarast...