6

test3つの列を持つ名前のテーブルが1つあります。

  1. 名前
  2. id
  3. 住所

しばらくすると、1つの列が使用されていないことがわかりました。たとえば、1つの列を削除したいとしますid

Oracleには、列をとして識別する機能が1つありますunuseddrop列とセット列の違いは何unusedですか?

4

3 に答える 3

8

列をドロップすると、その列はごみ箱に移動しますが、未使用の列にマークを付けると、論理的にはドロップしますが、物理的には保持します。

列を未使用としてマークしてから、alter table name drop used columnステートメントを使用すると、DBAが列へのアクセスを迅速かつ即座に奪うことができるため便利な場合があります。後で、週末の定期的なデータベース保守中または営業時間後に、alter table name drop used列を含む列を削除して、スペースを再利用できます。

一方、列を未使用としてマークしてもスペースは解放されません。スペースを解放して不要な列を削除する必要がある場合は、削除することをお勧めします。

于 2012-07-05T19:26:13.617 に答える
1

それは便利さの問題です、実際には...

ここを参照してください

「未使用」に設定することは、削除するのと同じですが、実際の物理的な削除を後日延期することができます。

于 2012-07-05T19:31:19.570 に答える
0

これは、一般的に使用するためではないDBAのメンテナンスウィンドウの助けになります。開発者にとっては、DROP列を意味します。それだけです。後で回復することはできません。代わりに、12 cにいる場合は、INVISIBLEオプションを使用してください。

于 2018-02-02T17:17:01.483 に答える