Oracle表空间和数据文件的常用操作
表空间资料查询
SELECT tablespace_name, block_size, extent_management, segment_space_management from dba_tablespaces;
配和
SELECT tablespace_name, initial_extent, next_extent, max_extents, pct_increase, min_extlen from dba_tablespaces;
配合
SELECT tablespace_name, status, contents from dba_tablespaces; 表空间对应数据文件资料查询
SELECT file_id, file_name, tablespace_name, autoextensible, bytes from dba_data_files; 创建数据字典管理的表空间(只有SYSTEM表空间为数据字典管理[Dictionary]时才能创建,10g以后的SYSTEM默认都是本地管理[Local].实质上数据字典管理表空间的做法基本不可行了.而且本技术既落后也低效)
CREATE TABLESPACE xxx DATAFILE 'c:\zzz\yyy.dbf' SIZE 50M, 'c:\mmm\nnn.dbf' SIZE 50M MINIMUM EXTENT 50K EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE (INITIAL 50K NEXT 50K MAXENTENTS 100 PCTINCREASE 0);
第一个extent为50k,第二个50k.从第三个开始大小为NEXT * ((1 + PCTINCREASE/100)的n-2次方) 创建本地管理的表空间
CREATE TABLESPACE xxx DATAFILE 'c:\zzz\yyy.dbf' SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
每个extent都是1兆大小 创建还原表空间 (只能使用DATAFILE和EXTENT MANAGEMENT子句)
CREATE UNDO TABLESPACE xxx_undo DATAFILE 'c:\zzz\yyy_undo.dbf' SIZE 20M; 查询临时表空间资料
SELECT f.file#, t.ts# "TableSpace#", f.name "File", t.name "TableSpace" from v$tempfile f, v$tablespace t WHERE f.ts# = t.ts#; 创建临时表空间
CREATE TEMPORARY TABLESPACE xxx_temp TEMPFILE 'C:\YYY\ZZZ_TEMP.DBF' SIZE 10M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M;
为了提高效率,UNIFORM SIZE最好是SORT_AREA_SIZE(PGA中的排序区大小)的整数倍. 默认表空间
a.) 当数据库没有默认临时表空间时,将使用SYSTEM表空间作为排序区,从而使其碎片化.
b.) 查询当前默认临时表空间
SELECT * from DATABASE_PROPERTIES WHERE PROPERTY_NAME = 'DEFAULT_TEMP_TABLESPACE';
c.) 变更默认临时
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
-- 笔记中部分内容
SQL> create table tt2 as select * from employee;
Table created.
SQL> drop table tt2;
Table dropped.
SQL> select * from tt2;
select * from tt2
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> flashback table tt2 to before drop;
Flashback comp ......
Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库。
对于初学者来说,为了避免麻烦,可以用'Database Configuration Assistant'向导来创建数据库。
创建完数据库后,并不能立即在数据库中建表,必须先创建该数据库的 ......
两种时间转换格式
plsql>
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;
select date‘'2005-01-01’ from dual;
按规定格式 获得系统时间 如下:
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual
or
select to_char(sysdate,'yyyy-MM-dd) from dual
or
se ......
(一)实现分页及性能
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。
分页查询格式:
SELECT * from
(
SELECT A.*, ROWNUM RN
from (SELECT * from TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
其中最内层的查询SELECT * from TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM & ......