10.1.3 実表の全行を削除する方法
実表の全行を削除する場合,基本的には,操作系SQLのTRUNCATE TABLE文を実行することを推奨します。
TRUNCATE TABLE文を実行すると,DELETE文(WHERE句を省略)よりも短時間で全行を削除できます。また,セグメントが解放されるため,削除した行データが格納されていた領域を再利用できます。
TRUNCATE TABLE文とDELETE文の違いについて,次の表に示します。
|
項番 |
比較項目 |
TRUNCATE TABLE文 |
DELETE文(WHERE句を省略) |
|---|---|---|---|
|
1 |
処理性能 |
|
|
|
2 |
セグメントの解放 |
|
|
|
3 |
COMMIT文の実行要否 |
|
|
|
4 |
排他制御(同一表に対するSELECT文との同時実行の可否)※ |
|
|
|
5 |
推奨する実行タイミング |
|
|
- 注※
-
TRUNCATE TABLE文およびDELETE文を実行したときに確保される排他資源と排他制御モードの詳細については,「2.8.4 確保される排他資源と排他制御モード」を参照してください。
実表の全行を削除する指定例を次に示します。
- 指定例
-
販売履歴表(SALESLIST)内の全行を削除します。
TRUNCATE TABLE "SALESLIST"
TRUNCATE TABLE文の指定形式および規則については,マニュアル「HADB SQLリファレンス」の「操作系SQL」の「TRUNCATE TABLE(実表の全行削除)」を参照してください。