Hej! Är det väldigt viktigt att data inte kommer bort? Om så är fallet, spara direkt i databasen. Om det är ganska viktigt: spara till fil, länka till fil från databasen. Skriv hela tiden till filen, windows sköter det där rätt bra. När allt är klart, flytta över till databasen. På så vis kan det mesta återskapas vid ev. krasch. Om det inte alls är viktigt, spara till databas lite då och då bara. Ok, tack för synpunkterna. Ja data är så pass viktigt att man vill ha med allt. Du skulle ju, i teorin, kunna ta befintlig data på en rad, sedan köra update på den och sätta värdet till sig självt + det du lägger tillSpara realtidsinformtion i en databas, fil eller i minnet?
Jag arbetar med realtidsdata från en sensor, det är ganska små datamängder som utgör rådata, ca 1 byte per sekund för upp till 30 st sensorer samtidigt. Det innebär att jag för varje sensor behöver lagra 1 byte per sekund och totalt sparas alltså 30 byte/sekund.
Kring detta kan en massa statisk beräknas och presenteras i realtid men den lagras i databasen först när körningen är klar.
Frågan är; hur sparas detta bäst i databasen i realtid? Eller ska man hålla data i minnet ett par minuter och sen skriva till databasen? Eller ska man t.o.m. skriva dessa rådata till en fil på hårddisken och länka den filen till en post i databasen istället?
Detta lyfter även nästa frågeställning, när man jobbar med realtidsdata som ska lagras hela tiden, ska man arbeta mot hårddisken eller mellanlagra i minnet, finns det "Best Practie", Patterns etc. kring dessa koncept.
Systemet utvecklas i VB/C#.Net och databasen kan komma bli SQLite eller den nya Microsoft SQL Server 2005 Compact Edition.
Mvh/
MagnusSv: Spara realtidsinformtion i en databas, fil eller i minnet?
Sv:Spara realtidsinformtion i en databas, fil eller i minnet?
I en prototyp har data skrivits till minnet för att sedan skrivas till en textfil när körningen är klar. Denna textfil's filnamn har sedan sparats i databasen tillsammans med olika färdiga uträkningar.
För att klara en eventuell krasch så har datat i minnet skrivits till en temporär fil också med 60 minuters mellanrum som kan återställas när programmet startar om. (man riskerar att förlora 1 minut men det är ok idag).
Det här har väl egentligen alltid fungerat men jag tänkte ändå kolla om det finns fler åsikter kring detta. Speciellt om det är en onödig belastning att skriva varje sekund till en databas.
Min andra fråga rörde hur man smartast sparar detta i en databas, det är ju rätt många poster med litet innehåll som skapas totalt sätt - men det kanske man inte behöver bry sig om.
Som jag ser det behövs ett fält för datavärdet (1 byte) och ett fält för Sessions-ID (GUID etc...) som knyter det värdet till en session/sensor som körs. Det känns som det blir massor av overhead för bara ett ynka datavärde, men det kanske är så man gör...?
Mvh/mSv: Spara realtidsinformtion i en databas, fil eller i minnet?