Compact 및 Shrink 메서드 사용
Compact 및 Shrink 메서드는 Microsoft SQL Server 2005 Compact Edition(SQL Server Compact Edition)에서 유사하게 사용되나 데이터베이스 크기를 줄이는 방법이 약간 다릅니다.
데이터베이스 압축 및 축소
Compact 메서드를 사용하면 데이터베이스 파일의 공간을 회수할 수 있습니다. 또한 암호 및 LCID(로캘 ID)를 비롯한 데이터베이스 설정을 변경할 수도 있습니다. 데이터베이스를 압축하면 새 데이터베이스 파일이 생성되고 테이블 페이지가 데이터베이스 페이지 주위로 재구성되며, 데이터베이스 데이터가 새 데이터 페이지에 다시 기록되어 사용하지 않은 공간을 회수할 수 있습니다.
또한 Shrink 메서드를 사용하여 데이터베이스 파일 공간을 회수할 수 있습니다. 그러나 Shrink 메서드는 새 데이터베이스 파일을 만들지 않고 레코드를 재구성하고 빈 레코드를 삭제하는 기능만 하므로 Shrink 메서드를 사용하여 데이터베이스 설정을 변경할 수 없습니다. 이 메서드는 단지 레코드를 재구성하고 빈 레코드를 삭제합니다.
압축 및 축소에 대한 자세한 내용은 데이터베이스 유지 관리(SQL Server Compact Edition)를 참조하십시오.
예
다음 예는 임시 데이터베이스 파일을 만들고 Compact 메서드를 사용하여 원본 데이터베이스 데이터를 임시 데이터베이스로 전송한 다음 원본 데이터베이스를 임시 데이터베이스로 교체합니다. 최종 데이터베이스는 원본과 이름은 같지만 데이터가 압축되어 있습니다.
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
참고 항목
참조
System.Data.SqlServerCe 네임스페이스 개체
System.Data.SqlServerCe Namespace(.NET Framework 참조 설명서)