VB.NETでデータベース圧縮する方法


VB.NETでデータベース圧縮する方法です。
MSDEやSQL Serverでは、テーブルの中身などを削除しても、
データベースのファイルのサイズは小さくなりません。
そこで、VB.NETでデータベースを圧縮する方法を紹介します。
shrinkdatabaseというコマンドを使えば良いのです。

まずは、データベース圧縮コマンドを送りっぱなしで、
出力を受け取らなくて良い場合です。

Shell("cmd.exe /C osql -S コンピュータ名 -E -n -Q ""dbcc shrinkdatabase( 'データベース名' )""", AppWinStyle.Hide)

データベース圧縮コマンドを送った後で、出力を受け取りたい場合は、

        Dim strRtn As String
        Dim objePsi As New System.Diagnostics.ProcessStartInfo()
        Dim objeProcess As Process
        'コマンド
        Dim strCommand As String
        'コマンド作成
        strCommand = "/c osql -S " & "コンピュータ名" & " "
        strCommand &= "-E -n "
        strCommand &= "-Q ""dbcc shrinkdatabase( '" & "データベース名" & "' )"""
        objePsi.FileName = System.Environment.GetEnvironmentVariable("ComSpec")
        objePsi.RedirectStandardInput = False
        objePsi.RedirectStandardOutput = True
        objePsi.UseShellExecute = False
        'ウィンドウを表示しない場合
        objePsi.CreateNoWindow = True
        objePsi.Arguments = strCommand
        '実行
        objeProcess = Process.Start(objePsi)
        '出力
        strRtn = objeProcess.StandardOutput.ReadToEnd
        objeProcess.WaitForExit()

SQL server2005の場合は、osqlをsqlcmdに変えます。

posted by VB.NET+MSDE+ActiveReports at 11:34 | Comment(0) | TrackBack(0) | SQL Server
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのTrackBack URL
http://blog.sakura.ne.jp/tb/6350268