質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

3回答

1328閲覧

表の空化(TRUNCATE)のメリットを知りたい

yyjfou

総合スコア35

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2021/04/29 13:13

編集2021/04/29 13:18

表の空化(TRUNCATE)のメリットを知りたいです。

DELETE だけで良いのでは?と思ってしまいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/04/29 13:15

>データベースの空化 とはどういう状態のことを言っているのでしょうか。 前提や背景、そもそもの出典や目的なども記載されたほうが良いかと。
Orlofsky

2021/04/29 15:21

>空化 へんな言葉を作るのは止めたほうが良さげ。
guest

回答3

0

ベストアンサー

Truncateはログを出力しないので高速です。
但し、ログ出力しないのでロールバックは普通出来ません。
初期データの投入やワークテーブルなどの初期化の際によく用います。

投稿2021/04/29 13:28

sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yyjfou

2021/04/30 05:16

ありがとうございます、勉強になります
guest

0

違いを理解されないとメリットもデメリットもないと思います。
TRUNCATE のパフォーマンス上の利点
SQL truncate 高速データ削除 deleteやdropとの違いとDBMS間の差異
TRUNCATEとDELETEの違い
DELETE と TRUNCATE TABLE の違い
TRUNCATEとDBMS間の違い

利用するDBによって多少の差異はあるでしょうけど、大体仕様的には同じです。

単テーブル(リレーションがなく独立したテーブル)を全削除したい場合、パフォーマンスを重視する場合、ディスク領域の解放まで一気にしたい場合

のメリットは大きいです。
処理が速い=サーバ負荷が少なく済む とも言えます。

投稿2021/04/29 13:27

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yyjfou

2021/04/30 05:16

ありがとうございます、勉強になります
guest

0

データベース管理システムは、テーブルの内容を追加変更削除を司るのみならず
不測の事態に備えてトランザクションログなんてものを記録しています。

これは、例えばシステムが何らかの原因でクラッシュしたときの復元に使われます。

(1) データベースを丸ごとバックアップする。
(2) 追加変更削除を行う。(同時にトランザクションログが作られる)
(3) クラッシュする。
-------------------------------
(4) バックアップからデータベースを復元する。
(5) 追加変更削除のトランザクションログを当ててクラッシュ直前の状態まで更新する
(6) データベースの使用を再開する。

これに対して TRUNCATE の場合は、トランザクションログを省略しています。
処理は、一瞬で終わります。

ざっとこんな感じ。

MSACCESS は、データベースもどきですので、こんなことやってません。

投稿2021/04/29 13:41

iruyas

総合スコア1067

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2021/04/29 14:36

ちょっと補足でコメントしておきます。 データベースのバックアップから復元する事に関してはtracnateしているかどうかはこの際関係がありません。 トランザクション制御を行っての処理を行い、異常検知した場合にrollbackで戻したい時にtruncateではなくdeleteを使用します。
iruyas

2021/04/29 22:28

φ(..)メモメモ <m(__)m>
yyjfou

2021/04/30 05:16

ありがとうございます、勉強になります
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問