2010-11-22 16 views
3

Ich schreibe eine Windows Mobile-Anwendung auf C# und .NET CF, die eine große Menge an Daten verwendet, die derzeit im Arbeitsspeicher gespeichert ist. Aufgrund der virtuellen Speicherbeschränkung in Windows CE muss ich die RAM-Nutzung reduzieren. Ich habe mich gefragt, ob die Verwendung einer SQL CE-Datenbank und das Speichern der Daten in der Datenbank die RAM-Nutzung reduzieren wird. Also, im Grunde muss ich wissen, wenn eine SQL CE-Datenbank verwendet wird, ob die Daten auf der Festplatte oder im RAM gespeichert sind.RAM-Nutzung der SQL CE-Datenbank in .NET CF

Kann mir jemand dabei helfen?

+0

Siehe auch SQLite. Dies funktioniert auch für Mobilgeräte und hat eine viel kleinere Grundfläche. –

Antwort

7

SQL Compact wird eine Datei als Sicherungsspeicher verwenden. Wird das die RAM-Nutzung reduzieren? Das hängt stark davon ab, wie Sie die Dinge jetzt erledigen und wie Sie die SQL Compact-Datenbank verwenden.

Wenn Sie die SDF-Datei in einen persistenten Speicher legen, benötigt sie weniger RAM für den Speicher. Wenn Sie alles in eine Tabelle schreiben und dann etwas wie eine DataTable verwenden, um die Ergebnisse von "SELECT * FROM MyTable" zu speichern, wird das gesamte Objekt in den Arbeitsspeicher repliziert und alle Vorteile werden beseitigt. Wenn Sie jedoch die zurückgegebenen Daten mithilfe von SQL-Anweisungen filtern, verringert sich die Speichernutzung. Die Verwendung von ResultSets und DataReadern anstelle riesiger DataSets macht ebenfalls einen großen Unterschied.

Also kann es Ihren Speicherverbrauch reduzieren? Wahrscheinlich, vorausgesetzt, Sie verwenden die Datenbank-Engine, um kleine Teile der Daten gleichzeitig zu betrachten. Auch hier kommt es für einen Vergleich darauf an, was Sie gerade machen.