新着記事一覧
タグ一覧
テーマ
ライト
ダーク
iPentec.com
/
Doc
/
SQL Server
目次
1
現象
2
原因
3
対処法
3.1
対処法1: ディスクの増設
3.2
対処法2: 削除の分割
SQL Server でテーブルから多くのレコードを削除すると 「エラー 9002: トランザクション ログがいっぱいです。」 が発生しレコードの削除ができない - SQL Server
SQL Server でテーブルから多くのレコードを削除すると 「エラー 9002: トランザクション ログがいっぱいです。」 が発生しレコードの削除ができない現象について紹介します。
現象
1,000万レコードを超える大きなテーブルで、全体のレコード数の80%以上をDelele文で削除するなどすると、以下のエラーメッセージが表示されます。
エラー 9002: トランザクション ログがいっぱいです。
エラーが発生すると削除処理は途中で中断され、レコードの削除はされません。
原因
トランザクションログが肥大化し、ディスクの空き領域がなくなっている可能性があります。
対処法
以下の対処法があります。
対処法1: ディスクの増設
ディスクを増設し、トランザクションログが大きくなってもディスクフルにならないよう対策します。一方で大量のレコード削除はテーブルのロックを発生し一時的にデーターベースが使用不能になるなどの弊害も発生するため、一度に大量のレコードの削除を回避する方法も検討するのがお勧めです。
対処法2: 削除の分割
1度に多くのレコードを削除するとトランザクションログが肥大化するため、削除を分割して複数回のdeleteコマンドに分けられないかを検討します。
著者
neg
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
関連するページ
データベースをオフラインにする
特定のテーブルで Insert や Updateがタイムアウトする
他のテーブルのレコードの値をinsertをする
SQL Server Native Client をインストールする
データベースのレプリケーションを設定する - トランザクションレプリケーションの設定
クラスター化インデックスを作成する
SQL Server Management Studio 20.x のインストール
SQL Server Management Studio 18.7 (Azure Data Studio) のインストール
最終更新日: 2019-01-04
作成日: 2019-01-03
ドキュメント
新着記事一覧
タグ一覧
ドキュメント トップ
コンテンツ
YouTube
iPentec
プライバシー
iPentecについて
iPentec all rights reserverd.