WEB开发网
开发学院数据库Oracle 详解Oracle数据库中DUAL表的使用 阅读

详解Oracle数据库中DUAL表的使用

 2009-05-13 13:13:45 来源:WEB开发网   
核心提示: SYSDUALTABLEPUBLICDUALSYNONYM--查看表结构,只有一个字段DUMMY,详解Oracle数据库中DUAL表的使用(2),为VARCHAR2(1)型SQL>descdualNameTypeNullableDefaultComments-------DUMMYV

SYS        DUAL              TABLE

PUBLIC     DUAL              SYNONYM

--查看表结构,只有一个字段DUMMY,为VARCHAR2(1)型

SQL> desc dual
Name Type        Nullable Default Comments
----- ----------- -------- ------- --------
DUMMY VARCHAR2(1) Y
--DUAL表的结构:
create table SYS.DUAL
(
DUMMY VARCHAR2(1)
)
tablespace SYSTEM
pctfree 10
pctused 40
initrans 1
maxtrans 255
storage
(
initial 16K
next 16K
minextents 1
maxextents 505
pctincrease 50
);
/*

很是困惑,ORACLE为什么要用VARCHAR(1)型,用CHAR(1)难道不好么?从这样的表结构来看,DUAL表设计的目的就是要尽可能的简单,以减少检索的开销。

还有,DUAL表是建立在SYSTEM表空间的,第一是因为DUAL表是SYS这个用户建的,本来默认的表空间就是SYSTEM;第二,把这个可能经常被查询的表和用户表分开来存放,对于系统性能的是有好处的。

有了创建了表、创建了同义词还是不够的。DUAL在SYS这个Schema下面,因此用别的用户登录是无法查询这个表的,因此还需要授权:

grant select on SYS.DUAL to PUBLIC with grant option;

将Select 权限授予公众。接下来看看DUAL表中的数据,事实上,DUAL表中的数据和ORACLE数据库环境有着十分重要的关系(ORACLE不会为此瘫痪,但是不少存储过程以及一些查询将无法被正确执行)。

上一页  1 2 3 4 5  下一页

Tags:详解 Oracle 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接