oracle 的 dual虚表有啥用处?
2012-03-15 18:16
260 查看
这是个虚拟表,你在操作大多数Oracle对象的时候都可以使用这个表,比如sequence,sysdate等等。
比如select sysdate from dual
select seq1.nextval from dual
等等,一般也就是用来做这个事情的
1. dual 是由 sql.bsq 建立的。每个database 在建立的时候, sql.bsq 都需要run 一次的。所以每个database 都会有dual table 的。
2. DUAL 的owner 是谁? -- SYS
(select owner, table_name from dba_tables where table_name='DUAL'
3. 什么时候经常用到dual table?
可以用于运算: select 99*99 from dual;
我自己最常用的是,在batch script 做 time stamps.
connect internal;
select to_char(sysdatE, 'YY-MON-DD HH:MI') FROM DUAL;
................
至 于运算或者看sequence 的value 使用得却是不多。可能做开发的人员用的比较多。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
关 于dual 引起的Performance 的问题。
如果你没有用很多dual的话,似乎不用考虑的。我尚未见过一天需要 access 千次以上dual 的数据库。但是根据文章,给dual 建立index 是个好办法(8i 及以前),并且要常做 analy table dual comput statistics。
或者将X$DUAL 使用where 来建立一个view,可以使其存在memory 里面,如果你常使用的话,就会降低performance cost。
比如select sysdate from dual
select seq1.nextval from dual
等等,一般也就是用来做这个事情的
1. dual 是由 sql.bsq 建立的。每个database 在建立的时候, sql.bsq 都需要run 一次的。所以每个database 都会有dual table 的。
2. DUAL 的owner 是谁? -- SYS
(select owner, table_name from dba_tables where table_name='DUAL'
3. 什么时候经常用到dual table?
可以用于运算: select 99*99 from dual;
我自己最常用的是,在batch script 做 time stamps.
connect internal;
select to_char(sysdatE, 'YY-MON-DD HH:MI') FROM DUAL;
................
至 于运算或者看sequence 的value 使用得却是不多。可能做开发的人员用的比较多。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
关 于dual 引起的Performance 的问题。
如果你没有用很多dual的话,似乎不用考虑的。我尚未见过一天需要 access 千次以上dual 的数据库。但是根据文章,给dual 建立index 是个好办法(8i 及以前),并且要常做 analy table dual comput statistics。
或者将X$DUAL 使用where 来建立一个view,可以使其存在memory 里面,如果你常使用的话,就会降低performance cost。
相关文章推荐
- Oracle基础之Dual
- 关于ORACLE DUAL表
- oracle 中 dual 详解
- Oracle使用虚拟表dual一次插入多条记录
- Oracle----dual
- DB2中创建类似Oracle中dual伪表
- oracle中的dual详解
- Oracle DUAL 奇观!
- 如何把oracle中的select sysdate from dual转化为SQL Server中的语句?
- ORACLE DUAL表详解 (转)
- Oracle中dual表的用途介绍
- Oracle小函数大用处!
- Oracle中dual表作用
- ORACLE DUAL表详解
- Oracle中dual虚拟表的用途
- Oracle中dual表的用途介绍
- oracle 虚拟表dual详解
- oracle借助dual查询
- Oracle使用虚拟表dual一次插入多条记录【摘录】
- DB2中类似于ORACLE中的DUAL表的表