oracle 的 dual虛表有啥用處?

2022-03-28 10:56:25 字數 936 閱讀 6058

這是個虛擬表,你在操作大多數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。

Oracle的dual表作用

1 檢視當前使用者,可以在 sql plus中執行下面語句 select user from dual 2 用來呼叫系統函式 select to char sysdate,yyyy mm dd hh24 mi ss from dual 獲得當前系統時間 select sys context user...

Oracle中dual表的用途

dual是乙個虛擬表,用來構成select的語法規則,oracle保證dual裡面永遠只有一條記錄。我們可以用它來做很多事情,如下 1 檢視當前使用者,可以在 sql plus中執行下面語句 select user from dual 2 用來呼叫系統函式 select to char sysdat...

oracle中dual表的用法

dual是乙個虛擬表,用來構成select的語法規則,oracle保證dual裡面永遠只有一條記錄。我們可以用它來做很多事情,如下 1 檢視當前使用者,可以在 sql plus中執行下面語句 select user from dual 2 用來呼叫系統函式 select to char sysdat...