Compartir a través de


Usar los métodos Compact y Shrink

Los métodos Compact y Shrink son parecidos en Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition), pero se diferencian ligeramente en la forma de reducir el tamaño de la base de datos.

Compactar y reducir una base de datos

Puede usar el método Compact para recuperar espacio en el archivo de base de datos. También puede utilizarlo para cambiar la configuración de una base de datos, por ejemplo la contraseña y el identificador de configuración regional (LCID). Al compactar una base de datos, se crea un nuevo archivo de base de datos, se reorganizan las páginas de tabla para que residan en páginas adyacentes de la base de datos y se recupera el espacio no usado rescribiendo todos los datos de la base de datos en las nuevas páginas de datos.

También puede usar el método Shrink para recuperar espacio en el archivo de base de datos. Sin embargo, el método Shrink no se puede usar para cambiar la configuración de la base de datos, porque este método no crea un nuevo archivo de base de datos, simplemente reorganiza los registros y elimina los que están vacíos.

Para obtener más información de Compact y Shrink, vea Mantener bases de datos (SQL Server Compact Edition).

Ejemplos

En el siguiente ejemplo se crea un archivo de base de datos temporal, se usa el método Compact para transferir los datos de la base de datos de origen a la base de datos temporal y, después, la base de datos de origen se reemplaza con la temporal. Al final, se obtiene una base de datos con el mismo nombre que la original, pero con los datos compactados.

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

Vea también

Referencia

Objetos del espacio de nombres System.Data.SqlServerCe
System.Data.SqlServerCe Namespace (documentación de referencia de .NET Framework)

Ayuda e información

Obtener ayuda sobre SQL Server Compact Edition