分类: Oracle
2008-08-28 13:54:09
当两个用户对同一个表上共享锁,会产生死锁现象;oracle会自动检测并解除死锁。
表分区
Oracle 准许用户对表进一步的规化,即对表进一步的拆分,将表分成若干个逻辑部分,每个部分称其为表分区
分区的有点
增强可用性。单个分区出现故障,不影响其他分区
均衡的I/O 。不同的分区可以映射到不同的磁盘
改善性能
分区方法
范围分区---这种分区方法是根据表中列值的范围对表进行分区。
---分区时,首先依据列中的值可能的范围进行划分
如某省对参加四六级考试的成绩进行整理并保存至数据库
我们可以对于分数据段进行划分:
60 |
P1 |
75 |
P2 |
85 |
P3 |
100 |
P4 |
Create table student
(
Studentid integer not null,
Studentname varchar2(20),
Score integer
)
Partition by range(score)
(
Partition p1 values less than(60),
Partition p1 values less than(75),
Partition p1 values less than(85),
Partition p1 values less than(maxvalue)
);
散列分区---提供了一种通过指定分区编号来均匀地分布数据的方法
---它通过hash函数将数据映射到相应的分区上
---它可使得数据均匀的分布到各分区上,各分区大小趋向一致
Create table department
(
Deptno int,
Deptname varchar2(14)
)
Partition by hash(deptno)
(
Partition p1,
Partition p2
);
复合分区---先对数据进行范围分区,然后在每个子分区又进行散列分区的一种分区方法
Create table salgrade
( grade number, losal number, hisal number)
Partition by rang(grade)
Subpartition by hash(losal,hisal)
(
Partition p1 values less than(10)
( subpartition sp1, subpartion sp2),
Partition p2 values less than(20)
( subpartition sp3, subpartion sp4),
)