Oracle11g Oracle中的无标记表
我正在研究PostGreSQL,我看到了一个未标记表的示例。 Oracle中是否有类似的资源? 我在甲骨文中有一个小提取器,它把日记填到一个表格中,然后生成一个文本文件。在那之后,这张桌子被清理了,但没有掉下来。Oracle11g Oracle中的无标记表,oracle11g,datatable,postgresql-9.4,logged,Oracle11g,Datatable,Postgresql 9.4,Logged,我正在研究PostGreSQL,我看到了一个未标记表的示例。 Oracle中是否有类似的资源? 我在甲骨文中有一个小提取器,它把日记填到一个表格中,然后生成一个文本文件。在那之后,这张桌子被清理了,但没有掉下来。 我知道这个“临时表”可以取消标记,因为它根本不是一个业务表。Oracle表可以创建为。这类似于PostgreSQL Unlocked选项,但我确信存在许多实现差异 即使将表创建为NOLOGGING,也只有特定的操作将使用直接路径插入(即直接写入数据文件且不会生成大量重做或撤消的inse
我知道这个“临时表”可以取消标记,因为它根本不是一个业务表。Oracle表可以创建为。这类似于PostgreSQL Unlocked选项,但我确信存在许多实现差异 即使将表创建为
NOLOGGING
,也只有特定的操作将使用直接路径插入(即直接写入数据文件且不会生成大量重做或撤消的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 |
----------------------------------------------------------------------------------
直接路径写入有许多奇怪的限制。通常会犯一个小错误,最终使用传统的插件。在下面的示例中,提示没有正确的语法。没有错误或警告,只有解释计划显示加载表常规
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.