oracle创建表时候指定表空间?
本帖最后由 pl_mm5 于 2012-07-06 09:39:36 编辑
prompt Creating DM_2...
create table DM_2
(
CD_DM VARCHAR2(10) not null,
CD_MC VARCHAR2(30),
CD_URL VARCHAR2(100)
)
tablespace USERS pctfree 10 --为啥要指定系统表空间users
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
alter table DM_2
add constraint CDD primary key (CD_DM)
using index
tablespace TS_JSI2_JQZH pctfree 10 --约束又建在了另一个表空间上?
initrans 2
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
这是看到的一个建表脚本,有几个问题不明白
1、Oracle建议要把一个用户的数据分离到多个表空间。为什么?
2、这里建表为什么还要指定表空间,一般不是在新建的用户下,create 表么,创建用户时候指定一个表空间,为什么要这么设计?
3、一个用户有一个默认表空间,那这个用户怎么使用多个表空间下的表数据?
========
以下为csdn广告。。。。。。。。。。
------解决方案--------------------1、不同的数据库在不同的表空间。
2、这是oracle数据库储存方式必须指定表空间,否则建表的时候不知道数据存放到哪去。
3、关键是用户权限。
------解决方案--------------------1、Oracle建议要把一个用户的数据分离到多个表空间。为什么?
---这个分为数据文件和索引文件,把数据和索引分开而来,有利于读取
2、这里建表为什么还要指定表空间,一般不是在新建的用户下,create 表么,创建用户时候指定一个表空间,为什么要这么设计?
---指定表空间防止乱啊,不然上万个表,表空间没管理
3、一个用户有一个默认表空间,那这个用户怎么使用多个表空间下的表数据?
----在这个用户下建表的时候,可以指定其它表空间,本用户默认的表空间只是表示在建表的时候,如果不指定,在在默认表空间下
------解决方案--------------------建立表的时候可以指定表空间的。
create table A01
(
col1 VARCHAR2(2),
col2 VARCHAR2(2) default 'Y'
)
tablespace tsp1
------解决方案--------------------大家说的都是些细节,你可以看一下下面这个链接,希望有点帮助。