2016-05-03 19 views
0

私はPostGreSQLを勉強していますが、未ログインのテーブルの例を見ました。 Oracleにも同様のリソースがありますか? 私はOracleに小さな抽出プログラムを用意しています。その日記はテーブルを埋めてテキストファイルを作成します。その後、このテーブルは削除されますが、削除されません。 この「一時テーブル」はビジネステーブルではないため、未記録になる可能性があることを理解しています。Oracleの未ログインテーブル

答えて

0

Oracle表はNOLOGGINGとして作成できます。これはPostgreSQL UNLOGGEDオプションに似ていますが、実装上の違いが多いと思います。 NOLOGGINGのみ特定の操作がダイレクト・パス・インサート(すなわち、データファイルに直接書き込み、はるかにREDOまたはUNDOを生成しないINSERTで)使用するようにテーブルが作成されても

。また、DMLは一般的に以下のようにAPPENDヒントを使用する必要があります。 LOAD AS SELECTが表示されている場合、ダイレクトパス書き込みが使用されているかどうかを確認できます。

SQL> create table test1(a number) nologging; 

Table created. 

SQL> explain plan for insert /*+ append */ into test1 select 1 from dual; 

Explained. 

SQL> select * from table(dbms_xplan.display); 
SQL> select * from table(dbms_xplan.display); 

PLAN_TABLE_OUTPUT 
---------------------------------------------------------------------------------- 
Plan hash value: 2781518217 

---------------------------------------------------------------------------------- 
| Id | Operation      | Name | Rows | Cost (%CPU)| Time  | 
---------------------------------------------------------------------------------- 
| 0 | INSERT STATEMENT     |  |  1 |  2 (0)| 00:00:01 | 
| 1 | LOAD AS SELECT     | TEST1 |  |   |   | 
| 2 | OPTIMIZER STATISTICS GATHERING |  |  1 |  2 (0)| 00:00:01 | 
| 3 | FAST DUAL      |  |  1 |  2 (0)| 00:00:01 | 
---------------------------------------------------------------------------------- 

ダイレクトパスの書き込みには多くの奇妙な制限があります。軽度のミスをして従来のインサートで終わるのは一般的です。以下の例では、ヒントの構文が正しくありません。エラーまたは警告はありません。説明プランにはLOAD TABLE CONVENTIONALと表示されます。

SQL> explain plan for insert /* append */ into test1 select 1 from dual; 

Explained. 

SQL> select * from table(dbms_xplan.display); 

PLAN_TABLE_OUTPUT 
-------------------------------------------------------------------------- 
Plan hash value: 1388734953 

-------------------------------------------------------------------------- 
| Id | Operation    | Name | Rows | Cost (%CPU)| Time  | 
-------------------------------------------------------------------------- 
| 0 | INSERT STATEMENT   |  |  1 |  2 (0)| 00:00:01 | 
| 1 | LOAD TABLE CONVENTIONAL | TEST1 |  |   |   | 
| 2 | FAST DUAL    |  |  1 |  2 (0)| 00:00:01 | 
-------------------------------------------------------------------------- 

9 rows selected.