oracle

推荐列表 站点导航

当前位置:首页 > 数据库 > oracle >

Oracle数据表分区的策略

来源:网络整理  作者:网络  发布时间:2020-12-09 23:46
Oracle数据表分区的策略...
  将审核信息从dba_audit_object表中取出并装入概要表中:
by access;'
spool off
正在看的ORACLE教程是:Oracle数据表分区的策略。本文描述通过统计分析出医院信息系统需分区的表,对需分区的表选择分区键,即找出包括在你的分区键中的列(表的属性),对大型数据的管理比较有意义, 本文的工作在Oracle8.1.6下实现。
audit select on ORDADM.ORDERS by access;
('ORDADM');

insert into aud_summary
set echo on feed on ver on
obj_name varchar2(30),
audit select on ORDADM.ORDERS_SHEET_IMAGE by access;
  清除审核信息:
  表1-2
  Oracle虽然是一个大型的DBMS,但如果不对记录比较多的表进行处理,仍然发挥不了Oracle管理大型数据的强大功能,因此对某些表进行分区,具有如下优点:
GROUP_ORDER_MASTER ORDADM 1196

  使用命令@ audoff.sql激活上述代码以关闭上述对象的审核功能。
  2、基于列值选择分区键
create table aud_summary (


  使用命令@audon.sql激活上述代码以打开审核功能收集收集审核信息,建立一个表以保存概要信息:
----------- ------------- ----------

where object_type in ('VIEW','TABLE') and owner in
from dba_objects
  1、基于访问频度找出需分区的表
  Oracle8i允许访问数据库中的审核信息,借助于收集的审核信息,设计者能够确定哪些表的数据是真正最频繁访问的,即找出那些表,需要进行分区。
from dba_objects
from dba_audit_object
audit select on ORDADM.GROUP_ORDER_MASTER by access;

select 'noaudit select on '||owner||'.'||object_name|| '
group by obj_name,owner;
  使用Sql*plus下用命令Analyze收集末分区表的统计信息,按照Oracle推荐的取样20%进行分析,并将统计结果保存在数据字典中。
sample 20 percent;


Analyze table ORDADM.ORDERS estimate statistics
where object_type in ('VIEW','TABLE') and owner in
  这些代码的运行将产生“audoff.sql”的输出文件。
  group_order_master( 医嘱套攴主记录) 、group_order_item(医嘱套攴明细), 表的行数比较少,不适合分区;drug_stock(药品库存)虽然存取频率比较高,但表的行数比较少,因此也不适合分区。我们选择表的行数比较多、存取频率比较高的表作分区处理,如 doctor_orders、orders、orders_costs,考虑到doctor_orders是医生工作站上医生开的医嘱,orders是由doctor_orders生成、护士工作站上执行的医嘱,两个表结构类似,而医嘱与药品、卫生材料、计费联系比较密切的是Orders,因此重点介绍对表orders的处理。
  打开审核:在作为SYS或SYSSTEM登录到数据库后,动行如下脚本,打开对象的审核功能。
  分区表中每个分区可以在逻辑上认为是一个独立的对象;
select table_name,column_name,num_distinct
DOCTOR_ORDERS ORDADM 30309

  本节描述通过统计分析出医院His系统需分区的表,对需分区的表找出包括在你的分区键中的列(表的属性),即选择分区键。

  如果选择合适的分区策略,会大大的加快数据的查询速度。
col obj_name form a30
  关闭审核:

('ORDADM');

audit select on ORDADM.DOCTOR_ORDERS by access;

  分析审核信息
hits number);


where owner like 'ORDADM';
set echo off feed off ver off pages 0
  一 找出需分区的表
spool off
  从表1-2中,我们可以看到欲分区表的各个候选分区键的

selec obj_name,owner,hits from aud_summary;

表 行数 命中率 doctor_orders 2052709 30309 drug_stock 2511 11094 group_order_item 3800 1030 group_order_master 186 1196 orders 1633010 40421 orders_costs 2403214 10109
from DBA_TAB_COLUMNS

set echo on feed on ver on
col owner form a20
OBJ_NAME OWNER COUNT(*)
select obj_name,owner,count(*)


access;'
spool audoff.sql
  这些代码的运行将产生“audon.sql”的输出文件,它包含下面清单中所示格式的语句
ORDERS_COSTS ORDADM 10109

GROUP_ORDER_ITEMS ORDADM 1030
set echo off feed off ver off pages 0
列 不同的值 PATIENT_ID 28720 VISIT_ID 2 ORDER_NO 395 ORDER_SUB_NO 10 ORDER_CLASS 9 ORDER_CODE 825 ORDER_TEXT 1551 ORDERING_DEPT 15 START_DATE_TIME 1194176 STOP_DATE_TIME 636798    



  可以在一个表中的一个或多个分区上进行如删除、移动、析分等维护操作,而不会影响其它分区,具有分区独立性;

  对DBA_TAB_COLUMNS数据字典视图进行查询 [NextPage]

  表1-1
audit select on ORDADM.VITAL_SIGNS_REC by access;


owner varchar2(30),

select 'audit select on '||owner||'.'||object_name||' by
col hits form 99,990
audit select on ORDADM.GROUP_ORDER_ITEMS by access;
delete sys.aud$

产生表1-2

DRUG_STOCK PHARMACY 11094

ORDERS ORDADM 40421
audit select on ORDADM.ORDERS_COSTS by access;
spool audon.sql
  以上是HIS系统临床医嘱部分24小时内对表的访问情况,从上面的查询得表1-1。

相关热词: oracle

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://www.juheyunku.com/sql/oracle/1978.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

Oracle数据表分区的策略

2020-12-09 编辑:网络

  将审核信息从dba_audit_object表中取出并装入概要表中:
by access;'
spool off
正在看的ORACLE教程是:Oracle数据表分区的策略。本文描述通过统计分析出医院信息系统需分区的表,对需分区的表选择分区键,即找出包括在你的分区键中的列(表的属性),对大型数据的管理比较有意义, 本文的工作在Oracle8.1.6下实现。
audit select on ORDADM.ORDERS by access;
('ORDADM');

insert into aud_summary
set echo on feed on ver on
obj_name varchar2(30),
audit select on ORDADM.ORDERS_SHEET_IMAGE by access;
  清除审核信息:
  表1-2
  Oracle虽然是一个大型的DBMS,但如果不对记录比较多的表进行处理,仍然发挥不了Oracle管理大型数据的强大功能,因此对某些表进行分区,具有如下优点:
GROUP_ORDER_MASTER ORDADM 1196

  使用命令@ audoff.sql激活上述代码以关闭上述对象的审核功能。
  2、基于列值选择分区键
create table aud_summary (


  使用命令@audon.sql激活上述代码以打开审核功能收集收集审核信息,建立一个表以保存概要信息:
----------- ------------- ----------

where object_type in ('VIEW','TABLE') and owner in
from dba_objects
  1、基于访问频度找出需分区的表
  Oracle8i允许访问数据库中的审核信息,借助于收集的审核信息,设计者能够确定哪些表的数据是真正最频繁访问的,即找出那些表,需要进行分区。
from dba_objects
from dba_audit_object
audit select on ORDADM.GROUP_ORDER_MASTER by access;

select 'noaudit select on '||owner||'.'||object_name|| '
group by obj_name,owner;
  使用Sql*plus下用命令Analyze收集末分区表的统计信息,按照Oracle推荐的取样20%进行分析,并将统计结果保存在数据字典中。
sample 20 percent;


Analyze table ORDADM.ORDERS estimate statistics
where object_type in ('VIEW','TABLE') and owner in
  这些代码的运行将产生“audoff.sql”的输出文件。
  group_order_master( 医嘱套攴主记录) 、group_order_item(医嘱套攴明细), 表的行数比较少,不适合分区;drug_stock(药品库存)虽然存取频率比较高,但表的行数比较少,因此也不适合分区。我们选择表的行数比较多、存取频率比较高的表作分区处理,如 doctor_orders、orders、orders_costs,考虑到doctor_orders是医生工作站上医生开的医嘱,orders是由doctor_orders生成、护士工作站上执行的医嘱,两个表结构类似,而医嘱与药品、卫生材料、计费联系比较密切的是Orders,因此重点介绍对表orders的处理。
  打开审核:在作为SYS或SYSSTEM登录到数据库后,动行如下脚本,打开对象的审核功能。
  分区表中每个分区可以在逻辑上认为是一个独立的对象;
select table_name,column_name,num_distinct
DOCTOR_ORDERS ORDADM 30309

  本节描述通过统计分析出医院His系统需分区的表,对需分区的表找出包括在你的分区键中的列(表的属性),即选择分区键。

  如果选择合适的分区策略,会大大的加快数据的查询速度。
col obj_name form a30
  关闭审核:

('ORDADM');

audit select on ORDADM.DOCTOR_ORDERS by access;

  分析审核信息
hits number);


where owner like 'ORDADM';
set echo off feed off ver off pages 0
  一 找出需分区的表
spool off
  从表1-2中,我们可以看到欲分区表的各个候选分区键的

selec obj_name,owner,hits from aud_summary;

表 行数 命中率 doctor_orders 2052709 30309 drug_stock 2511 11094 group_order_item 3800 1030 group_order_master 186 1196 orders 1633010 40421 orders_costs 2403214 10109
from DBA_TAB_COLUMNS

set echo on feed on ver on
col owner form a20
OBJ_NAME OWNER COUNT(*)
select obj_name,owner,count(*)


access;'
spool audoff.sql
  这些代码的运行将产生“audon.sql”的输出文件,它包含下面清单中所示格式的语句
ORDERS_COSTS ORDADM 10109

GROUP_ORDER_ITEMS ORDADM 1030
set echo off feed off ver off pages 0
列 不同的值 PATIENT_ID 28720 VISIT_ID 2 ORDER_NO 395 ORDER_SUB_NO 10 ORDER_CLASS 9 ORDER_CODE 825 ORDER_TEXT 1551 ORDERING_DEPT 15 START_DATE_TIME 1194176 STOP_DATE_TIME 636798    



  可以在一个表中的一个或多个分区上进行如删除、移动、析分等维护操作,而不会影响其它分区,具有分区独立性;

  对DBA_TAB_COLUMNS数据字典视图进行查询 [NextPage]

  表1-1
audit select on ORDADM.VITAL_SIGNS_REC by access;


owner varchar2(30),

select 'audit select on '||owner||'.'||object_name||' by
col hits form 99,990
audit select on ORDADM.GROUP_ORDER_ITEMS by access;
delete sys.aud$

产生表1-2

DRUG_STOCK PHARMACY 11094

ORDERS ORDADM 40421
audit select on ORDADM.ORDERS_COSTS by access;
spool audon.sql
  以上是HIS系统临床医嘱部分24小时内对表的访问情况,从上面的查询得表1-1。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://www.juheyunku.com/sql/oracle/1978.shtml

相关文章

风云图片

推荐阅读

返回oracle频道首页