标签:oracle学习
接触ORACLE有段日子了,不过基本上就是写写几条SELECT语句,存储过程也是依葫芦画瓢写的,没有什么技术含量。所以有关这方面的技术水平就这样徘徊着。
ORACLE资料也有一大堆,包括之前自己雄心壮志买下的那本厚厚的书。书是好书,就是难啃。一开始看的还算积极,就算不懂的地方也会尽量搞懂。看到快一半的时候,又一次回头翻了翻过去的内容……这都什么鬼……很多都不太记得了,当时好像懂了,还做了笔记的地方,现在要连着笔记一起啃……感觉现在用不到这么深吧,而且看了就忘,于是渐渐不怎么翻了。
不过ORACLE还在继续接触,有不懂的地方就请教厉害的同事,同事都愿意大方地指导,嘿嘿。渐渐地,虽然理解还是比较浅显,不过好像对之也通了点,之前啃资料得到的一些‘ORACLE印象’在这里还是有帮助的,不过并没有因此再一次开啃资料,只在对一个问题好奇而不解的时候去查看一下……
下面继续随笔:
(1)表数据量大(亿级),一次加载多张表,导致表空间快爆了,使用率达90%:
查看回收站是否还有残留的表:select * from recyclebin;删除一张表如果没有PURGE,则不会真的删除,而是放到回收站,而且如果不去处理,会一直占用空间。
如果发现回收站有误删的表,可以进行数据恢复,还原此表。确认这些残留表都是真的不需要可以执行:purge recyclebin,这样就可以真正物理地删除此表;
反思:在这种情况下加载数据时,应该同时监控表空间使用情况。
(2)查询一张大表每月数据量:
alter session enable parallel dml; --开并行
select /*parallel(16)*/ --查询大表
count(*), to_char(colname, ‘yyyymm‘) --colname是日期字段
from tablename
group by to_char(colname, ‘yyyymm‘);
commit; --提交事务
亿级数据表用此方法可以更快的查到结果。
(3)创建表空间:
create tablespace p1 datafile ‘E:\app\表空间\p1_space.dbf‘ size 32m autoextend on next 32M MAXSIZE 2048M ;
create tablespace p2 datafile ‘E:\app\表空间\p2_space.dbf‘ size 32m autoextend on next 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL;
会产生对应的数据库文件在对应的目录下。
(4)分区:
ORACLE分区包含以下几个分区
a.HASH分区(也是散列分区)
如:
create table part
partition by hash(empno)
(
partition part1 tablespace P1,
partition part2 tablespace P2
)
as select * from emp;
插入一条数据到哈希分区时,会用这条数据的分区建值通过一个ORACLE的内置函数计算,决定它应该到哪个分区去,这是随机的。
分区个数最好是2的幂次方(2,4,8,16),这样的数据分布能更均匀。
b.范围分区
关键字:
RANGE,LESS THAN,LESS THAN(MAXVALUE)
c.列表分区
关键字:
枚举,VALUES(DEFUALT)
d.间隔分区
只能用数值列作为分区字段。
它会根据新插入的数据按预定义的规则来创建需要的分区(当应入的分区不存在时;若已存在,则直接进入分区)。不过删除一个分区里的数据并不会导致分区被删除。
当更新数据时可能会涉及到行移动问题。如果建表时没有允许行移动,则更新数据时会报错。
e.引用分区
子表分区方法引用父表。当父表分区有变动时,子表分区随之改变。保持数据完整性。
f.组合分区
即分区中可以进一步分区(子分区(subpartition))
不过并不是支持所有的分区组合,不同的版本支持不同的组合。
(5)查询一个分区中的数据:
SELECT * FROM tablename PARTITION(partitionname);
(6)当想复制一张表,新表的表空间如果和原表是在同一空间会报错。如:
CREATE TABLE NEW_TABLE TABLESPACE TEMP AS SELECT * FROM OLD_TABLE;(OLD_TABLE也在TEMP表空间中)
执行时报如下错误:
ORA-02195:尝试创建的PERMANENT对象在TEMPORARY表空间中。
(7)……
随笔结束吧,第一次写博客,真有点小激动呢!不仅为了博你们客,还为了整理自己的思绪,嘿嘿。写博客蛮有意思!以后有时间继续写着玩,哈哈~~
对了,ORACLE资料已经继续看了,加油吧。
写的比较简单随意,有误的地方欢迎指正。
本文出自 “11646774” 博客,请务必保留此出处http://11656774.blog.51cto.com/11646774/1784588
标签:oracle学习
原文地址:http://11656774.blog.51cto.com/11646774/1784588