Temporäre Datenbanken
Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) erstellt eine temporäre Datenbank zum Speichern der folgenden temporären Daten:
- Zwischenzeitliche Resultsets, die während einer Abfrage erstellt werden.
- Zwischenzeitliche Sortiertabellen, die beim Ausführen einer ORDER BY-, GROUP BY- oder DISTINCT-Klausel erstellt werden.
Die temporäre Datenbank wird nur erstellt, wenn dies explizit angegeben ist. Der Name muss angegeben werden, wenn das Modul gestartet wird. Die temporäre Datenbank wird entfernt, wenn das Datenbankmodul beendet wird. Fehlerbedingte Beendigungen einer SQL Server Compact 3.5-Anwendung oder ein Dateisynchronisierungsproblem führen dazu, dass temporäre Datenbankdateien im System verbleiben. Diese Dateien müssen manuell entfernt werden.
Speicherort der temporären Datenbank
Für Vorgänge, die eine große temporäre Datenbank erfordern, sollten Sie explizit einen Speicherort zum Erstellen einer temporären Datenbank angeben. Wenn kein Speicherort für die temporäre Datenbank angegeben wird, wird der aktuelle Speicherort der Datenbank als Speicherort der temporären Datenbank verwendet. Sie geben keinen Namen für die temporäre Datenbank an, der Dateiname beginnt mit "SQLCE", z. B. SQLCE334241234.TMP.
Der Speicherort der temporären Datenbank muss angegeben werden, bevor das Modul gestartet wird, und kann nicht geändert werden, während das Modul ausgeführt wird. Sie können den Speicherort der temporären Datenbank ändern, wenn die Datenbank komprimiert wird. Weitere Informationen finden Sie unter Verwalten von Datenbanken und unter Vorgehensweise: Komprimieren einer Datenbank (programmgesteuert).
Angeben des Speicherorts
Sie geben den Speicherort der temporären Datenbank in der Verbindungszeichenfolge zur Datenbank an, indem Sie den Parameter temp path, temp file directory oder ssce:temp file directory verwenden.
Hinweis
Der von Ihnen angegebene Speicherort für die temporäre Datenbank muss bereits vorhanden sein.
Weitere Informationen finden Sie unter Vorgehensweise: Angeben des Speicherorts der temporären Datenbank mithilfe von ADO.NET (programmgesteuert), Vorgehensweise: Angeben des Speicherorts der temporären Datenbank mithilfe der Objekte "Replication" und "RDA" und Vorgehensweise: Angeben des Speicherorts der temporären Datenbank mit OLE DB (programmgesteuert).
Sie verwenden die Verbindungszeichenfolge mit den Objekten SqlCeConnection, SqlCeReplication und SqlCeRemoteDataAccess. Für das SqlCeReplication-Objekt müssen Sie den Speicherort der temporären Datenbank für alle Methoden einschließen, die die SubscriberConnectionString-Eigenschaft verwenden. In der folgenden Tabelle werden diese Methoden aufgelistet.
Nur systemeigen | Nur verwaltet | Systemeigen und verwaltet |
---|---|---|
|
|
|
Für das SqlCeRemoteDataAccess-Objekt müssen Sie den Speicherort der temporären Datenbank für alle Methoden einschließen, die eine LocalConnectionString-Eigenschaft verwenden. Diese Methoden sind die folgenden:
- RDA_Object.Pull (systemeigen und verwaltet)
- RDA_Object.Push (systemeigen und verwaltet)
Vergrößerung der temporären Datenbank
Große Datenbanken können während der normalen Ausführung große Mengen temporärer Daten generieren. Wenn die temporäre Datenbank größer wird, sodass der Speicherplatz auf dem Standardspeichergerät nicht mehr ausreicht oder die maximale Größe für die temporäre Datenbank erreicht wird, tritt ein Fehler bei der Anwendung auf.
Die folgenden Vorgänge verursachen eine Vergrößerung der temporären Datenbank, besonders wenn eine Gruppe der Vorgänge in einer einzigen expliziten Transaktion enthalten ist.
- UPDATE- und DELETE-Anweisungen, die große Mengen von Daten betreffen
- Sortiervorgänge. Sortieren erfordert nicht unbedingt das Verwenden der temporären Datenbank, wenn ein Index vorhanden ist, der für die Sortierung ausreicht. Einige Sortiervorgänge erstellen möglicherweise zusätzliche temporäre Dateien für die temporären Sortierpuffer. Diese Dateien unterscheiden sich von der temporären Datenbank. Für jede Datenbank ist eine temporäre Datenbank vorhanden, es kann jedoch eine beliebige Anzahl temporärer Sortierpufferdateien geben.
Weitere Informationen zu expliziten Transaktionen finden Sie unter Transaktionstypen.
Um zu verhindern, dass umfangreiche Datenbankdateien die Speicherlimits des Geräts überschreiten, sollten Sie Datenbanken nicht im internen RAM, sondern auf einer Speicherkarte speichern.