Freigeben über


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)

Hilfe und Information

Informationsquellen für SQL Server Compact Edition