数据管理
性能优化
OLTP OLAP
物化视图 :表的快照
传输表空间 :异构平台的数据迁移
星型转换 :事实表
OLTP : 在线事务处理
1. transaction —> DML
2. 数据量小
3. 处理时间短 —> SQL 共享,绑定变量
4. 并发量大
OLAP,DSS
1. 以查询为主(海量)—> 数据汇总 —> 结果放到表(物化视图)里
2. 处理时间长
3. 几乎无并发
4. 做并行处理
SGA + PGA
memory_target : 自动按需分配SGA和PGA
eg :
set autotrace on
set linesize 120
set time on
set timing on
set pagesize 20
set sqlprompt
db link :连接前置数据库和后台数据库
前置database(查询)
后台database(统计)
物化视图 —> 读写分离
eg :
grant create materialized view to scott
set auto trace off
create materialized view emp_mv1 as select sum(sal) sum_al, avg(sal) avg_sal, min(sal) min_al, dept no from emp group by deptno;
desc user_segments
col segment_name for a20
select segment_name, segment_type, tablespace_name, extents, bytes/1024 from user_segments where segment_name=‘EMP_MV1’;
eg :
set autotrace on
select …; (查看资源消耗)执行计划 execution plan
将复杂的查询结果存储到物化视图里
PCTFREE : 一般表预留10%的空间来做update等DML操作
eg:show parameter rewrite
drop materialized view emp_mv1
create materialized view emp_mv1 enable query rewrite as select sum(sal) sum_al, avg(sal) avg_sal, min(sal) min_al, dept no from emp group by deptno;
李全新 邮箱 :[email protected]
手工建库脚本从官方文档拷贝修改
eg : desc dbms_mview
set autotrace off;
select * from emp;
update emp set deptno=40 where empno = …;
commit;
select * from emp;
select * from emp_mv1;
exec dbms_mview.refresh(‘emp_mv1’);
select * from emp_mv1;
物化视图日志记录基表数据的变化以便进行快速刷新
eg :
select * from tab;
create index emp_mv1_ind on emp_mv1(deptno) tablespace indx;
analyze index emp_mv1_ind compute …;
PCT Refresh
表空间移动
数据迁移 :
1. expdp, impdp(exp, imp)(异构平台)
2. tablespace transport(异构平台)expdp metadata, copu datafile
3. dg (Data Guard) :容灾 数据克隆 (同构平台)
4. ogg (Oracle Golden Gate) : 收费软件
5. 存储镜像
表空间自包含的检测 :
execute dbms_tts.transport_set_check(‘users’);
eg :
create table emp1 as select * from emp;
create index emp1_empno on emp1(empno) tablespace indx;
alter table emp1 add constraint pk_emp1 primary key(empno);
alter table emp1 move tablespace indx;
execute dbms_tts.transport_set_check(‘users’);
会用expdp
外部表 external table
重建 OEM :
emca -config dbcontrol db -repos -recreate
解锁sh用户
事实表
维度表
select constraint_name, table_name from user_constraints;
desc user_indexes
select index_name, table_name from user_indexes;
星型查询 : 在事实表和维度表之间进行连接查询
bitmap index
show parameter star
set star_tranformation_enabled to true
eg :
emctl status dbconsole
emctl start dbconsole
merge join cartesian
对表 t2 做分析 :
analyze table t2 compute statistatics;
星型转换
并行查询
设置并行度(DOP degree of parallelism)
eg :
alter session force parallel query;
alter session set parallel_degree_policy=limited;(设置所有SQL执行并行)
eg :
show parameter parallel
parallel_min_servers : 指定最少启用几个并行进程
set autotrace on
r
eg :
alter session enable parallel dml;
set autotrace on
insert /*+ parallel(4) */ into emp1 select /*+ parallel(4) */ from emp;
eg :alter table sh.sales parallel 8; (设置表sales的并行度为8)
parallel_min_time_threshold : 指定执行时间,超过则自动开启并行查询,DOP