Domanda

Ha senso usare SQL Server Compact per un'applicazione desktop?

  • Quanti dati può gestire?
  • È possibile utilizzarlo con più utenti? Quali sono i vincoli?
  • Cosa succede quando i file del database sono rotti? È possibile ripristinare a livello di codice o sarebbe facile risolvere il problema in remoto?
È stato utile?

Soluzione

Certamente lo farei (e lo farò). SQL Compact (SQLCE) presenta un netto vantaggio in alcuni scenari. Ora non intende in alcun modo sostituire un server SQL. Non si ridimensiona, non è progettato per eseguire migliaia di connessioni simultanee, non è progettato per servizi di reportistica, ecc. Ecc.

Ma ha un minuscolo . L'installazione è solo una questione di copia su DLL. Il backup è una semplice copia di file. E può essere malvagio veloce per l'archiviazione e il recupero se si utilizza table direct o BCP. Oh, ed è gratuito. Se hai solo bisogno di un archivio dati locale per un'app, SQL Server è difficile da distribuire e configurare. SQLCE è semplice. Inoltre, può giocare nella stessa sandbox di un SQL Server completo come abbonato di replica (cosa che la maggior parte degli altri piccoli DB non può).

Modifica: ho dimenticato di rispondere alle tue domande specifiche:

  • Quanti dati può gestire? In termini di cosa? Dimensione DB? Throughput? Dimensioni del tavolo? Dimensione della fila? La mia esperienza è che ho eseguito il DB a poche centinaia di MB senza problemi. Penso che possa contenere 4 GB (a partire da 4.0). La velocità effettiva è direttamente correlata al modo in cui stai inserendo o eliminando i dati. Lo stiamo usando in una soluzione in cui stiamo acquisendo 1k righe al secondo senza problemi. Puoi avere 1024 colonne e una dimensione massima delle righe di 8k.
  • Utenti multipli? Bene, può gestire più connessioni simultanee (a partire da 3.5), quindi sì, dovrebbe funzionare. Ho usato più connessioni da un utente, mai da più.
  • Database non funzionanti? Definire "rotto". Il motore ha un "compatto e riparazione" metodo. È un file come un altro: come si corregge un eseguibile rotto? Non ho visto alcuna corruzione sul campo, se è quello che stai chiedendo (bene abbiamo fatto su un dispositivo CE che aveva una scheda di memoria difettosa, ma non è colpa del motore).

Altri suggerimenti

Se vuoi un piccolo database usa qualcosa come SQLLite.

Ma ecco un articolo sull'uso dell'edizione compatta su un server

L'ho usato per un'applicazione e ha funzionato bene. L'unico problema che ho riscontrato è che, per qualche motivo, SQL Server 2005 Management Studio non supporta tutte le funzionalità di progettazione per l'ultima versione di SQL Server CE (ad esempio non è possibile modificare le tabelle, ad esempio). Devi usare la versione del 2008 credo.

È abbastanza veloce, ma è vero che l'ho usato per piccoli set di dati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top