oracle索引、视图和闪回数据归档讲解

索引

准则:当任何单个查询要检索的行少于或等于整个表行数的10%时,就应当创建索引。

b-树索引:索引的候选列应该是用来存储很大范围的值的列

位图索引:包含小范围值的列

1.创建b-树索引

注意:由于性能原因,应该将索引与表存储到不同的表空间中。

假设test表包含很多行

select id,type
from test
where type='01';
create index i_test_type on test(type);

唯一索引

create unique index i_test_id on test(id);

复合索引

create index i_test_id_type on test(id, type);

2.创建基于函数的索引

select id,type
from test
where type=upper('sfz');
create index i_func_test_type on test(upper(type));

注意:使用基于函数的索引,必须要将初始化参数query_rewrite_enabled设置为true。

3.获取有关信息的索引

select index_name, table_name, uniqueness, status
from user_indexes
where table_name='test';

4.获取列索引的信息

select index_name, table_name, column_name
from user_ind_columns
where table_name='test';

5.修改索引

alter index i_test_id_type rename to i_test_id_and_type;

6.删除索引

drop index i_test_id_and_type;

7.创建位图索引

create bitmap index i_order on order(status);

视图

注意:视图并不存储行,他们始终存储在表中。视图返回存储在表中的行

1.创建视图

connect system/systemgrant create view to zoey;
connect zoey/zoey

create view test_view asselect * from test where type='02';

使用视图

select id from test_view;

注意:简单视图支持dml操作,复杂视图不支持dml操作。

2.创建具有check option约束的视图指定对视图执行的dml操作必须满足子查询的条件。

create view test_view2 asselect * from test where type='02'
with check option constraint test_view2;

3.创建具有read only约束的视图(只读)

create view test_view3 asselect * from test where type='02'
with read only constraint test_view2;

4.获取有关视图定义的信息

describe test_view3;

5.获取有关视图的约束信息

select constraint_name, constraint_type, status , deferrable, deferred
from user_constraintswhere table_name='test';

6.修改视图

create or replace view test_view3 asselect * from test where type in ('02', '01');

7.删除视图

drop view test_view3;

五.闪回数据归档

create flashback archive test_archivetablespace example --归档在example创建
quota 1 m --限额是1m
retention 1 day;--保留期限是1天

停止归档

alter zoey.test no flashback archive;

清除归档中的所有数据

alter flashback archive test_archive purge all;

删除闪回归档

drop flashback archive test_archive;
(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐