您的位置:首页 > 数据库 > Oracle

第二天2-1,2,3,4】【自动扩展】【添加数据文件】【创建表空间】【undo表空间】【修改用户默认表空间】【释放没用的空间|移动表到新的表空间】

2013-09-21 15:33 951 查看
--2-1
select * from dba_tables where tablespace_name='USERS'
select * from dba_tablespaces
select * from dba_data_files
select * from dba_temp_files
select * from dba_segments where tablespace_name='USERS'
select * from dba_segments where tablespace_name='TEST3'
select * from dba_segments where tablespace_name='UNDOTBS2'
select * from dba_extents where segment_name='TT'
select sum(BLOCKS) from dba_extents where segment_name='TT'

select * from test.t
select * from sys.tt
insert into tt select * from tt where rownum<=100000;
--空间不足
--自动扩展
alter database datafile 4 autoextend on next 1m maxsize 1024m; --1m=128block 1024=128*8,1block=8K(常见block大小8k,16k,32k)
--添加数据文件
alter tablespace users add datafile 'C:\ORADATA\TEST\USERS02.DBF' size 10m autoextend on next 1m;

alter table tt allocate extent (datafile 'C:\ORADATA\TEST\USERS02.DBF' size 40m);--size 40m个BLOCK
--当数据文件大于64m小于1G时,系统自动按8M分配区,分配区BLOCKS 1024 --1024*8/1024=8m
--当数据文件大于1G时,系统自动按64M分配区
--创建表空间e
create tablespace test1 datafile 'C:\ORADATA\TEST\TEST01.DBF' size 10m autoextend on next 1m maxsize unlimited;--属性不能修改
create tablespace test2 datafile 'C:\ORADATA\TEST\TEST02.DBF' size 10m autoextend on next 1m maxsize unlimited uniform;--缺省值是128块,1M
create tablespace test3 datafile 'C:\ORADATA\TEST\TEST03.DBF' size 10m autoextend on next 1m maxsize unlimited uniform size 128k;--uniform规定了分配的所有extents都是128k

--释放没用的空间
alter table test.t enable row movement;
alter table test.t shrink space;
--移动表到新的表空间中
alter table test.t move tablespace test2
--
select * from v$datafile
select * from v$filestat   --文件读写次数 对优化非常有用
--读写上50块硬盘RAD阵列全加上,逻辑上分数据库和备份,均衡io,不推荐在物理上分两部分。
EXTENT_MANAGEMENT
LOCAL
LOCAL
--字典区管理
select * from fet$ --free extent
select * from uet$ --usage extent
--8i开始头文件2~8块 存以上信息,不采用字典管理
--2-3
--创建undo表空间
create undo tablespace undotbs2 datafile 'C:\ORADATA\TEST\UNDOTBS02.DBF' size 10m;
create rollback segment sg1;--创建回滚段,10g开始有UNDO表空间了,就不允许创建回滚段,不会报错,就是创建不上。

alter table test.t add name varchar2(10) default 'a'
select * from test.t
insert into test.t values(1,'a');
commit
insert into test.t values(2,'b');
commit
update test.t set name='c' where id=1;

select * from v$mystat
select distinct sid from v$mystat
SID
145
select * from v$session where sid in (145,130)
SID      PADDR
130       6FA511AC
145       6FA51D8C
--
select paddr from v$session where sid=145
PADDR
6FA51D8C
select pid,spid from v$process where addr='6FA51D8C'
PID	SPID  --pid 是oracle内部给进程的process ID,SPID是操作系统给进程的system process id.
20	1872
--==
show parameter db_name
alter system kill session (xx,xxx)
orakill --xp下,杀线程的,sid = session id
select pid,spid, osuser, s.program from v$process p, v$session s where p.addr=s.paddr and s.paddr='6FA51D8C'
--修改用户默认表空间
alter user hugh defaut tablespace hugh01;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle
相关文章推荐