小结:Oracle Internals: DUAL

来源:互联网 发布:丸美白色之恋 知乎 编辑:程序博客网 时间:2024/05/23 00:06
小结:Oracle Internals: 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?

我自己最常用的是,在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。

不过我觉得,这些知道就好了,等你真的用到时再花时间研究吧。


原创粉丝点击