- - PR -
トランザクションログを取らない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-06-21 14:18
お世話になってます。
SQLServer2000を使用しています。 トランザクションログを取らないクエリの実行方法ってあるのでしょうか? 大容量のデータを扱っていて、クエリを実行するとトランザクションログが ディスク容量を使いまくってしまいます。 DBのログファイルサイズは自動拡張にしていて、復旧モデルはシンプルにしています。 ログファイルサイズを制限すると、そのサイズに達した段階で 「データベース '×××' のログ ファイルはいっぱいです。ログ領域を解放するには、データベースのトランザクション ログをバックアップしてください。」 とエラーが出てしまいます。 ちなみに実行しているのは「SELECT INTO」で、この処理はトランザクションログを 取らないというふうにどこかでみたことがあるのですが、違うのでしょうか? | ||||
|
投稿日時: 2007-06-21 14:54
SELECT INTOは別テーブルへのINSERTですよ? 更新なのでトランザクションログへの書き込みは必須です。 書かないと一切のリカバリができなくなってしまいます。 | ||||
|
投稿日時: 2007-06-21 15:00
こんにちは。
以下の手順で最小限しかログに記録されなくなるはずです。 1. 完全復旧モデルに切り替える 2. 一括ログ復旧モデルに切り替える 3. INSERT INTO を行う 4. 単純復旧モデルに切り替える ステップ 1. が必要なのかどうか確証が無いですが。 _________________ 上本亮介 (ue) @ わんくま同盟 Microsoft MVP for VSTO (Jul 2008 - Jun 2009) Hello Another World! .NET 勉強会 / ヒーロー島 | ||||
|
投稿日時: 2007-06-21 15:34
あしゅさん、ueさん、早速のご回答ありがとうございます!
>あしゅさん ということは、「SELECT INTO」は「CREATE TABLE」と「INSERT」を同時に行っている ようなものってことですかね? たとえば、皆さん大容量のレコードの一括削除って、どうされてるんでしょう? とりあえず削除して、あとでログの切捨てって感じでしょうか? すみません、質問だらけで・・・ >ueさん 1,2,4はそれぞれ選択してOKボタンを押せば手順完了ということでしょうか。 なんか、ゲームの裏コマンドみたいですね。。 この場合、4以降の処理から最小限のログということですか? | ||||
|
投稿日時: 2007-06-21 17:32
Enterprise Manager で設定するならボタンを押すだけです。 GUI は有り難いですね。 最小限のログとなるのは 2. 以降です。 普段は単純復旧モデルで運用されているようなので、4. で元に戻しています。 _________________ 上本亮介 (ue) @ わんくま同盟 Microsoft MVP for VSTO (Jul 2008 - Jun 2009) Hello Another World! .NET 勉強会 / ヒーロー島 | ||||
|
投稿日時: 2007-06-21 19:18
ueさん
ありがとうございます。 ちょっとやってみますね。 あとはどのぐらいログ容量が減るかですね。 前回はHDD容量が残り10MBになってましたので。。 |
1