Ho un'applicazione WCF che attualmente utilizza l'archiviazione di file basata su XML per archiviare i dati che vengono utilizzati per generare report. Oltre a questo processo, le decisioni vengono prese in base alle informazioni memorizzate in questi file XML.Qualche considerazione prima di saltare in SQLite?
Attualmente sto colpendo volumi di circa 30 000 file di testo. Questo è incredibilmente faticoso e l'applicazione a volte si ferma.
Ho sempre desiderato estrapolare il DAL XML in favore di un RDBMS, ma i project manager semplicemente non lo permetteranno. Ma sarebbero disposti a guardare una soluzione serverless ad esempio SQLLite. Sono davvero tentato di immergermi subito e iniziare a usarlo come DAL (Data Access Layer) sostitutivo.
Non avrei bisogno di più di circa 20 tabelle nell'intera soluzione, e mi aspetterei di ottenere non più di circa 20.000 - 100.000 transazioni al giorno, tuttavia questo è estremo, i volumi reali sarebbero inferiori a questo nella maggior parte dei casi.
Aggiornamento
Non mi aspetto una grande quantità di connessioni simultanee, quando dico le transazioni, che in sostanza significa che 1 o 2 clienti che effettuano chiamate e eseguono nel database in ordine. A volte potrebbe esserci la possibilità che i client esterni effettuino chiamate rapide al DB. Ma la maggior parte delle connessioni DB verrà eseguita dal mio servizio WCF, che è un'attività pianificata back-end, che non serve centinaia di persone all'interno di un'organizzazione.
Un altro buon punto è che ho solo bisogno di conservare i dati per 90 giorni, quindi il DB non dovrebbe diventare troppo grande.
mie preoccupazioni principali sono:
Quanto è affidabile SqlLite? Cosa succede se il file DB viene danneggiato, perderò tutti i dati di elaborazione. Quanto è facile eseguire il backup del DB? Gestirà i miei volumi? E infine quanto bene funziona il provider .net (che si trova qui: http://sourceforge.net/projects/sqlite-dotnet2/).
Se hai esperienza con SQLLite, pubblica le tue esperienze in modo che io possa prendere una decisione informata di cambiare o meno.
Grazie in anticipo ...
Lasciatemi riformulare la mia domanda. –
Giusto, sqlite non gestisce più utenti che tentano di accedervi contemporaneamente, ma fintanto che è semplicemente un archivio di dati monolitico utilizzato da un'applicazione alla volta, funziona alla grande. – Karl
@Karl, gestisce l'accesso simultaneo da diversi processi, anche da sistemi diversi, e supporta le transazioni, che è il modo migliore per gestire il blocco. È conforme ACID. Tuttavia, poiché l'intero database è contenuto in un unico file e si blocca a livello di file, i lettori bloccano le scritture in sospeso e il blocco di scrittura fino al termine della lettura. –