ORACLE 常用脚本(2)[转]

一、ORACLE的表的分类:

1、REGULAR TABLE:普通表,ORACLE推荐的表,使用很方便,人为控制少。
2、PARTITIONED TABLE:分区表,人为控制记录的分布,将表的存储空间分为若干独立的分区,记录按一定的规则存储在分区里。适用于大型的表。

二、建表

1 CREATE TABLE 表名 (EMPNO NUMBER(2),NAME VARCHAR2(20)) PCTFREE 20 PCTUSED 50
STORAGE (INITIAL 200K NEXT 200K MAXEXTENTS 200 PCTINCREASE 0) TABLESPACE 表空间名称
[LOGGING|NOLOGGING]所有的对表的操作都要记入REDOLOG,ORACLE建议使用NOLOGGING;
[CACHE|NOCACHE]:是否将数据按照一定的算法写入内存。
2、关于PCTFREE 和PCTUSED
A、行迁移和行链接
B、PCTFREE:制止INSERT,为   UPDATE留FREE 空间
C、PCTUSED:为恢复INSERT操作,而设定的。

三、拷贝一个已经存在的表:

CREATE TABLE 新表名 STORAGE(。。) TABLESPACE 表空间
AS SELECT * FROM 老表名 ;
当老表存在约束,触发的时候,不会拷过去。

四、修改表的参数ALTER TABLE 名称 PCTFREE 20 PCTUSED 50 STOAGE(MAXEXTENTS 1000);

五、手工分配空间:

ALTER TABLE 名称 ALLOCATE EXTENT(SIZE 500K DATAFILE '。。');

1、SIZE选项,按照NEXT分配
2、表所在表空间与所分配的数据文件所在的表空间必须一样。

六、水线

1、水线定义了表的数据在一个BLOCK中所达到的最高的位置。
2、当有新的记录插入,水线增高
3、当删除记录时,水线不回落
4、减少查询量

七、如何回收空间:

ALTER TABLE 名称 DEALLOCATE UNUSED [KEEP 4[M|K]]
1、当空间分配过大时,可以使用本命令
2、如果没有加KEEP,回收到水线
3、如果水线《MINEXTENTS的大小回收到MINEXTENTS所指定的大小

八、TRUNCATE 一个表

TRUNCATE TABLE 表名,表空间截取MINEXTENT,同时水线重置。

九、DROP 一个表DROP TABLE 表名 [CASCADE CONSTRAINTS]
当一个表含有外键的时候,是不可以直接DROP的,加CASCADE CONSRIANTS将外键等约束一并删掉。

十、信息获取1、dba_object
2 dba_tables:建表的参数
3 DBA_SEGMENTS:
组合查询的连接字段:DBA_TABLES的table_name+dba_ojbect的object_name+dba_segments的SEGMENT_NAME

本文链接 https://yanbin.blog/oracle-scripts/, 来自 隔叶黄莺 Yanbin Blog

[版权声明] Creative Commons License 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments