• 締切済み

最適化について

WinServer2003 のタスクスケジュールを使用して毎日曜日にDB(SQLServer2005)の最適化とHDDのデフラグを行うように設定しています。 タスクのログから起動した形跡はあるのですが最適化が実施されません。 Windowsにログインしている状態でbatを実行すると処理されます。 通常はログオフ状態になっており、このタスクもログオフの状態で起動(0:00起動)するように設定してあります。 また、DBの最適化なのですが、設計段階の見積容量と実際のデータ容量が大きく異なり、DBの初期サイズが実サイズを超過しています。 DB元となるデータは、20種類程のCSVファイルからINPORTするため、全部を合計しても800MB程度しかありません。 DBの初期サイズ (DATA:10G LOG:5G) を変更したいのですがどうすればよろしいでしょうか? 以下のbatからDBの最適化を行っていますが、次のメッセージが表示され最適化されません。(HDDの空き容量は15GBあります) ※DB停止中はDBの最適化はできませんでした。 以上、なぜ実施されないのか分かりませんのでお教え願います。 <DB最適化結果> DBCC SHRINKDATABASE:データベースID 7 のファイルID 1 がスキップされました。ファイルに再利用する空き容量が不足しています。 ログファイル2 (PSSDB_Log)を圧縮できません。すべての論理ログファイルが使用中です。 <タスク設定> 毎週日曜日:0:00 実行ファイル:hdddef.bat <hdddef.batの内容> cls rem == DB 最適化 == osql -E -i d:\comp.sql rem == DB 停止 == net stop mssqlserver /Y rem == C HDD 最適化 == defrag -f c: rem == D HDD 最適化 == defrag -f d: rem == DB 起動 == net start mssqlserver /Y exit <comp.sqlの内容:pssdbはDB名です> use pssdb dbcc shrinkdatabase("pssdb",1) go

みんなの回答

  • t-ka
  • ベストアンサー率28% (14/50)
回答No.1

SQLServer2000を使用してますが。初期作成サイズより圧縮するには、SHRINKDATABESEではなくSHRINKFILEでデータファイル・ログファイルを個々に圧縮する必要があるとおもいます。

関連するQ&A