Verwenden der Compact-Methode und der Shrink-Methode
Die Methoden Compact und Shrink gleichen sich in Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition), reduzieren die Datenbankgröße jedoch auf leicht unterschiedliche Weise.
Komprimieren und Verkleinern einer Datenbank
Sie verwenden die Compact-Methode, um Speicherplatz in der Datenbankdatei zu schaffen. Sie können sie auch verwenden, um Datenbankeinstellungen zu ändern, z. B. die Kennworteinstellungen und die LCID-Einstellungen (Gebietsschema-ID). Wenn Sie eine Datenbank komprimieren, wird eine neue Datenbankdatei erstellt, Tabellenseiten werden neu organisiert, sodass sie sich auf benachbarten Datenbankseiten befinden, und nicht verwendeter Speicherplatz wird freigegeben, indem alle Datenbankdaten in die neuen Datenseiten geschrieben werden.
Sie können auch die Shrink-Methode verwenden, um Speicherplatz in der Datenbankdatei freizugeben. Die Shrink-Methode kann jedoch nicht verwendet werden, um Datenbankeinstellungen zu ändern, da die Shrink-Methode keine neue Datenbankdatei erstellt, sondern nur Datensätze neu organisiert und leere Datensätze löscht.
Weitere Informationen zur Compact-Methode und zur Shrink-Methode finden Sie unter Verwalten von Datenbanken (SQL Server Compact Edition).
Beispiele
Im folgenden Beispiel wird eine temporäre Datenbankdatei erstellt, die Compact-Methode wird verwendet, um die Daten der Quelldatenbank in die temporäre Datenbank zu übertragen, und die Quelldatenbank wird dann durch die temporäre Datenbank ersetzt. Das Endergebnis ist eine Datenbank mit demselben Namen wie die ursprüngliche Datenbank, deren Daten jedoch komprimiert wurden.
C#
string src = "MyDB.sdf";
string dest = "MyDB.sdf.tmp";
// Initialize SqlCeEngine object.
SqlCeEngine engine = new SqlCeEngine("Data Source = " + src);
try {
engine.Compact("Data Source = " + dest);
engine.Dispose();
File.Delete(src);
File.Move(dest, src);
}
catch(SqlCeException e)
{
//Use your own error handling routine.
//ShowErrors(e);
}
finally
{
//Dispose of the SqlCeEngine object.
engine.Dispose();
}
Visual Basic
Dim src As String = "MyDB.sdf"
Dim dest As String = "MyDB.sdf.tmp"
' Initialize SqlCeEngine Object.
Dim engine As New SqlCeEngine("Data Source = " + src)
Try
engine.Compact(("Data Source = " + dest))
engine.Dispose()
File.Delete(src)
File.Move(dest, src)
Catch e As SqlCeException
'Use your own error handling routine.
'ShowErrors(e)
Finally
'Dispose of the SqlCeEngine object.
engine.Dispose()
End Try
Siehe auch
Referenz
System.Data.SqlServerCe-Namespaceobjekte
System.Data.SqlServerCe-Namespace (.NET Framework-Referenzdokumentation)