Oracleで一時テーブルを作成することに遭遇しました。しかし、これの最善の使い方を理解できませんでした。(create temporary table temp_table)
誰かが、通常のテーブルよりもOracle で一時テーブルを使用することの機能と利点を理解するのを手伝ってくれませんか(create table temp_table)
)
2 に答える
コンセプトガイドから:
一時テーブルの定義は永続テーブルの定義と同じように持続しますが、データはトランザクションまたはセッションの間だけ存在します。一時テーブルは、結果セットを一時的に保持する必要があるアプリケーションで役立ちます。これは、おそらく結果が複数の操作を実行して構築されるためです。
そして:
一時テーブルのデータはセッションに対してプライベートです。つまり、各セッションは自身のデータのみを表示および変更できます。
そのため、データがセッションに対してプライベートであるという側面があります。on commit
これは、永続テーブルのコミットされていないデータにも当てはまりますが、一時テーブルを使用すると、データは永続化され、コミット後も非公開のままになります (作成時の句に基づく)。
もう 1 つの側面は、一時セグメントを使用することです。つまり、同じデータを一時的に永続テーブルに入れ、必要に応じて更新し、必要に応じて削除した場合よりも、一時テーブルを使用して生成される REDO と UNDO のオーバーヘッドがはるかに少なくなります。それで終わりました。また、複数のセッションで独自のバージョンの一時データが必要な場合でも、競合やロックの問題を回避できます。
以下に、一時テーブルを使用する理由とタイミングをいくつか示します。
1)一時テーブルは、データを表形式で保存するために作成され、必要に応じてその特定のセッションで簡単に取得できます。
2) また、その特定のセッションでのみデータを使用できるようにするというセキュリティ上の目的も追加されます。
3) コードが長くなり、多くのカーソルが開かれる場合は、必要なときに簡単にフェッチできるように、一時テーブルにデータを配置することをお勧めします。