ログファイルに記録せずに DML 操作を行う方法はありますか?
たとえば、データベースに行を挿入すると、トランザクションを使用するかどうかに関係なく、この操作はログ ファイルに記録されます。しかし、この操作をログ ファイルに記録したくありません。
ログファイルに記録せずに DML 操作を行う方法はありますか?
たとえば、データベースに行を挿入すると、トランザクションを使用するかどうかに関係なく、この操作はログ ファイルに記録されます。しかし、この操作をログ ファイルに記録したくありません。
いいえ、決して。ありえない。
すべての操作は何らかの理由でログに記録されます。途中で失敗した場合はどうなるでしょうか。サーバーがクラッシュ?などなど
要約: ACIDの A、C、D
これを望まない場合は、ACID 以外の NoSQL の代替手段を使用することを検討してください。
SQL Server は常にログ ファイルに挿入を書き込みます。サーバーがリセットされたときにデータベースを一貫した状態に回復するには、その情報が必要です。
復旧モデルを選択することで、ログに与える影響を変更できます。
alter database YourDb set recovery { FULL | BULK_LOGGED | SIMPLE }
シンプル モードでは、SQL Server は実行中のトランザクションのみをログに記録し、不要になったログの部分を再利用し始めます。シンプル モードでは、通常、ログ ファイルは小さいままです。
挿入操作の後にログを削除する場合は、次を使用できます。
alter database YourDb set recovery simple with no_wait
dbcc shrinkfile(YourDbLog, 1)
alter database YourDb set recovery <<old model here>>
これにより、すべてのログが削除されることに注意してください。このコマンドを実行した後にのみ、最後の完全バックアップの復元を使用できます。