oracle 对交易流水表进行表分区后,索引如何创建

oracle 对交易流水表进行表分区后,索引如何创建,第1张

方法如下:
Oracle中建立索引,会提高查询速度: create index 索引名 on 表名(列名);
例如:
create index index_userid on tbl_detail(userid);
如何找数据库表的主键字段的名称
SELECT
FROM user_constraints WHERE CONSTRAINT_TYPE='P' and table_name='AAA';
select from dba_cons_columns where CONSTRAINT_NAME='SYS_AAA';
Oracle 在创建主键(可以不加constraint SYS_AAA),会为库表自动创建索引,
索引的列为主键列。 并且当库表某些列名或者库表名改变时候,
Oracle自动创建的索引SYS_AAA,中的索引列也会自动更新(类似于视图),并且SYS_AAA会与名字更改后的库表还是保持索引关系。 关键系统库表: desc dba_constraints desc dba_cons_columns
desc dba_indexes desc dba_ind_columns desc DBA_TAB_COLUMNS
例子1:更改库表的列名
ALTER TABLE AAA RENAME COLUMN ID TO AAA_ID; create table AAA ( ID NUMBER(8), NAME CHAR(20),
constraint SYS_AAA primary key(ID) );
//查找约束名字
select cCONSTRAINT_NAME,ctable_name,ccCOLUMN_NAME from user_constraints c, user_cons_columns cc
where cconstraint_name=ccconstraint_name and ctable_name ='AAA' AND CCONSTRAINT_TYPE='P';
CONSTRAINT_NAME TABLE_NAME COLUMN_NAME
SYS_AAA AAA ID
//查找索引
select
index_name,index_type,uniqueness from user_indexes where
table_name='AAA'; INDEX_NAME INDEX_TYPE
UNIQUENES

首先,里边有数据不太好办,不过可以这样
create table T_BUSINESS_MONITOR_TMP as select from T_BUSINESS_MONITOR;
然后,把原表清空
truncate table T_BUSINESS_MONITOR;
然后加上分区
alter table T_BUSINESS_MONITOR add partition p201301 VALUES LESS THAN (TO_DATE(' 2013-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN') tablespace 表空间名;
看好了,前边的分区名是201301,后边的to_date的日期是20130201,不要弄错了,当然,这个可以指定使用的表空间,
这样的话,你要按照此语句建12个分区,最后一个就应该是名字为p201312 ,时间就是2014-01-01,
然后,把你之前的表的数据弄过来
insert into T_BUSINESS_MONITOR select from T_BUSINESS_MONITOR_TMP;
commit;

最后把备份表删除
drop table T_BUSINESS_MONITOR_TMP

一、什么场景、时间适合用分区表
1、大数据量的表,比如大于2GB。一方面2GB文件对于32位OS是一个上限,另外备份时间长。
2、包括历史数据的表,比如最新的数据放入到最新的分区中。典型的例子:历史表,只有当前月份的数据可以被修改,而其他月份只能read-only
就我实际工作中了解到的几种情况:
全国法人单位名录库约有700-800万条记录,字段约有100个。可按所属省行政区划、指标枚举等字段建立分区表。
北京统计宏观数据库,在村一级采用一维表存储,随着指标增多,记录可达千万至亿条级。
上海市房管局系统的权属数据,按照市中心及19个区县,共划分了20个分区,以期提高数据的存取效率。
二、分区表有什么优势?
1、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;
2、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;
3、均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能;
4、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。
>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13344878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-18
下一篇 2023-07-18

发表评论

登录后才能评论

评论列表(0条)

保存