oracle分区表的设计
2023-12-08 02:05:02
分区表的概念 分区是致力于解决支持最大的表和索引的关键问题。利用其分解成更小的、易于管理的方法称为分片(块)。一旦分区定义,SQL语句可以访问操作的分区而不是整个表,从而提高管理效率。分区数据仓库的应用是非常有效的,因为他们经常存储和分析大量的历史数据。 分区表的分类 范围分区(范围分区) 哈希分区(Hashi分区) 列表分区(列表分区) 复合范围散列分区(范围哈希组合分区) 复合范围列表分区(范围列表组合分区) 何时选择范围分区 一个表的记录必须根据列值的范围划分。你要处理一些数据,这往往是在一定的范围内,如一个月。如果数据能根据分区范围内均匀分布,它将获得最佳的性能。如果数据分布分布不均,你可以选择其他分区。 创建表的销售 (invoice_no数, sale_year INT NOT NULL, sale_month INT NOT NULL, sale_day INT NOT NULL) 按范围分区(sale_year,sale_month,sale_day) (分区sales_q1值小于(1999, 04,01) 表空间的TSA, 分区sales_q2值小于(1999, 07,01) 表空间TSB, 分区sales_q3值小于(1999, 10,01) 表空间的TSC, 分区sales_q4值小于(2000, 01,01) 表空间的TSD); 何时选择哈希分区 如果数据不易划分,你想提高性能和可管理性的表,哈希分区提供了一种交叉和均匀分布的数据在指定的分区数。线映射到基于分区键的哈希值对应的分区创建和使用散列分区。,你可以把数据灵活,你可以交叉访问的分区在不同的我/ O设备提高性能。 创建表scubagear(身份证号、姓名VARCHAR2(60)) 散列(id)分区 分区4店(gear1,Gear2,GEAR3,Gear4); 何时选择列表分区 使用列表分区,你可以直接控制的一些数据映射到一些分区,你可以指定一个不连续的分区键的值为一个分区,这是由不同的范围分区(使用键值范围分区的分区),或哈希分区(不能控制,分区被映射)。 创建表q1_sales_by_region (deptno号、部门名称VARCHAR2(20),quarterly_sales号码(10, 2),国家VARCHAR2(2)) 按列表分区(状态) (分区q1_northwest值(或,'wa), 分区q1_southwest值('az ','ut ','nm), 分区q1_northeast值('ny ','vm,新泽西州), 分区q1_southeast值('fl ','ga), 分区q1_northcentral值(高,装置的), 分区q1_southcentral值(好的,'tx ')); 分区表的设计 如何选择分区的类型以及如何选择分区的列在此之前,你必须清楚你的目标——可管理性和绩效,你更关注哪些方面分区表的影响可以分为以下几个方面:性能、可管理性、数据清理。 以下是分区表对每个项目的特定效果, 性能: 这通常是分区的主要目的,分区将大表转换成小表,当其中的条件反映了分区字段的具体值之后,就避免了完整的表扫描。 易于管理: 对于包含大量数据的大表,分区的可管理性非常明显。当您推荐基于非分区表的索引时,惟一的选择是创建整个索引: 改变指数par_ind_01 reuild分区yy05; 除此之外,您还可以在同一时间做很多事情,比如更改表空间、导出表、删除表数据等等。 数据清洗: 我们经常需要删除表的一些历史数据。一般的做法是删除,但这将导致撤消和重做信息的快速增长和数据库的整体性能: 修改表tab_a删除分区yy01; 当删除一个表的分区时,同时删除相应的本地索引。如果有全局索引,它将成为一个不可用的状态。为了避免出现这种情况,您可以使用: 修改表tab_a yy01更新全局索引分区;tag:分区表 电脑软件 Oracle
相关内容