Oracle基础2

1.同义词

1.1私有同义词

需求:在A_oe模式下创建私有同义词访问A_hr模式下的employee表
create synonym sy_emp for A_hr.employee;--创建私有同义词sy_emp 
select * from sy_emp;--访问同义词

注意:用户必须拥有create synonym权限

1.2公有同义词

--创建同义词
create public synonym public_sy_emp for employee;
--访问同义词、
select * from public_sy_emp ;
注意:用户必须拥有creata public synonym的权限

1.3私有同义词和公有同义词的区别

私有同义词只能在当前模式下访问,且不能与当前模式下的对象同名;
公有同义词可被所有的数据库用户访问。

1.4删除同义词

drop [public] synonym synonym _name;
--删除私有同义词
drop synonym A_oe.sy_emp ;
--删除公有同义词
drop public synonym A_hr.public_sy_emp ;

2.索引

2.1定义:索引是与表关联的可选结构,是一种快速访问数据的途径,可提高数据库性能。

2.2分类

按物理分类:分区和非分区索引、B树索引(标准索引)、正常或反向键索引、位图索引
按逻辑分类:单列或组合索引、唯一或非唯一索引、基于函数索引。

2.2.1唯一索引

在薪水级别表(salgrade)表中,为级别编号(grade)列创建唯一索引:
create unique index index_unique_grade on salgrade(grade);

注意:在缺少unique的情况下创建的就是B树索引(标准索引)

2.2.2位图索引

优点:最适合低基数列(选项很少,比如性别);
对于大批即时查询,可以减少响应时间;
相比其他索引技术,占用空间明显减少;
即使在配置很低的终端硬件上,也能获得显著的性能。

2.2.3创建索引的原则

1.频繁搜索的列可以作为索引;
2.经常排序、分组的列可作为索引;
3.经常用做连接的列(主/外键)可作为索引;
4.将索引放在一个单独的表空间中,不要放在有回退段、临时段和表的表空间中;
5.对大型索引而言,考略使用nologging子句创建大型索引;
6.根据业务数据发生的频率,定期重新生成或重新组织索引,并进行碎片整理;
7.仅包含几个不同值的列不可以创建B树索引,可根据需要创建位图索引;
8.不要在仅包含几行的表中创建索引。

2.2.4删除索引

需求:删除员工(employee)表中的index_bit_job的索引:
drop index index_bit_job;

3.分区表

3.1定义

用户把一个表中的所有行分为几个部分,并将这些部分存储在不同的位置,被分区的表成为分区表,分成的每个部分称为一个分区。

3.2分区的优点

1.改善表的查询性能,在对表进行分区后,用户执行SQL查询时可以只访问表中的特定分区而非整个表;
2.表更加容易管理,因为分区表的数据存储在多个部分中,按分区加载和删除数据比在表中 加载和删除更容易;
3.便于备份和恢复,可以独立地备份和恢复每个分区;
4.提高数据安全箱,将不同的分区分布在不同的磁盘,可以减小所有分区的数据同时损坏的可能性。

3.3分区的条件

1.数据量大于2GB;
2.已有的数据和新添加的数据有明显的界限划分。
注意:要分区的表不能具有 long和long raw数据类型的列。

3.4分区表的分类

包含范围分区、列表分区、散列分区、复合分区、间隔分区、虚拟列分区等。

3.4.1范围分区

按季度统计销售信息(表信息省略)
partition by range(sales_date)
(
    partition p1 values less than (to_date('2016-04-01','yyyy-mm-dd')),
    partition p2 values less than (to_date('2016-07-01','yyyy-mm-dd')),
    partition p3 values less than (to_date('2016-10-01','yyyy-mm-dd')),
    partition p4 values less than (to_date('2017-01-01','yyyy-mm-dd')),
    partition p5 values less than (maxvalue)
);
--查看第三季度的数据
select * from sales partition(p3);
--删除第三季度的数据
delete from sales partition(p3);

注意:一般建立范围分区时,都会将最后一个分区设置为maxvalue,使其他数据落入此分区。
    如果插入的数据就是分区键上的值,则该数据落入下一个分区。如插入数据为'2016-10-01',则落入p4分区

3.4.2间隔分区

是范围分区的一种增强,可以实现范围分区的自动化,其优点在于不需要创建表时就将所有分区划分清楚。间隔分区随着数据的增加会划分更多的分区,并自动创建新的分区。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值