最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

把非分区表改为分区表

来源:动视网 责编:小OO 时间:2025-09-28 21:00:26
文档

把非分区表改为分区表

把非分区表改为分区表个人分类:性能调优--说明:把非分区表改为分区表适用于历史表---1、创建分区表(结构和非分区表TBL_STOCK_BALANCE_LOG相同)CREATETABLETBL_STOCK_BALANCE_LOG_PART1(ACCOUNT_IDVARCHAR2(20BYTE),OCCUR_DATEDATE,BRANCH_IDNUMBER(10),MONEY_TYPEVARCHAR2(10BYTE),MONEY_TYPE_NAMEVARCHAR2(20BYTE),MARKET_
推荐度:
导读把非分区表改为分区表个人分类:性能调优--说明:把非分区表改为分区表适用于历史表---1、创建分区表(结构和非分区表TBL_STOCK_BALANCE_LOG相同)CREATETABLETBL_STOCK_BALANCE_LOG_PART1(ACCOUNT_IDVARCHAR2(20BYTE),OCCUR_DATEDATE,BRANCH_IDNUMBER(10),MONEY_TYPEVARCHAR2(10BYTE),MONEY_TYPE_NAMEVARCHAR2(20BYTE),MARKET_
把非分区表改为分区表

个人分类:性能调优

--说明:把非分区表改为分区表适用于历史表

---1、创建分区表(结构和非分区表TBL_STOCK_BALANCE_LOG相同)

CREATE TABLE TBL_STOCK_BALANCE_LOG_PART1

(

ACCOUNT_ID VARCHAR2(20 BYTE),

OCCUR_DATE DATE,

BRANCH_ID NUMBER(10),

MONEY_TYPE VARCHAR2(10 BYTE),

MONEY_TYPE_NAME VARCHAR2(20 BYTE),

MARKET_CODE VARCHAR2(10 BYTE),

MARKET_NAME VARCHAR2(30 BYTE),

STOCK_CODE VARCHAR2(10 BYTE),

STOCK_NAME VARCHAR2(60 BYTE),

STOCK_TYPE_CODE VARCHAR2(40 BYTE),

STOCK_TYPE_NAME VARCHAR2(60 BYTE),

QTY NUMBER(18),

STOCKVALUE NUMBER(18,4),

INDUST_NUM VARCHAR2(20 BYTE),

CLOSE_PRICE NUMBER(18,4),

ASSET_ACCT NUMBER(18,4),

REFER_COST NUMBER(18,4),

REFER_BREAK NUMBER(18,4),

REFER_BREAK_RA NUMBER(18,4),

INDUST_ID VARCHAR2(20 BYTE),

DEPTID VARCHAR2(10 BYTE)

)

Partition by range (OCCUR_DATE)

(

partition p_other values less than (maxvalue)

);

---2、交换数据(数据从非分区表到分区表)

alter table TBL_STOCK_BALANCE_LOG_PART1 exchange partition p_other with table TBL_STOCK_BALANCE_LOG;

---SELECT * FROM TBL_STOCK_BALANCE_LOG_PART1;

---3、查询分区表数据

select to_char(OCCUR_DATE, 'YYYY-MM'), count(*) from TBL_STOCK_BALANCE_LOG_PART1 group by to_char(OCCUR_DATE, 'YYYY-MM');

---辅助脚本

select

'alter table TBL_STOCK_BALANCE_LOG_PART1 split partition p_other at (to_date('''||to_char(OCCUR_DATE,'yyyy-mm')||''',''yyyy-mm'')) into (partition p'||to_char(OCCUR_DATE,'yyyymm')|| ',partition p_other);'

from TBL_STOCK_BALANCE_LOG_PART1

group by to_char(OCCUR_DATE,'yyyy-mm'),to_char(OCCUR_DATE,'yyyymm')

order by to_char(OCCUR_DATE,'yyyymm')

---执行脚本生成语句

alter table TBL_STOCK_BALANCE_LOG_PART1 split partition p_other at (to_date('2011-08','yyyy-mm'))

into (partition p201108,partition p_other);

alter table TBL_STOCK_BALANCE_LOG_PART1 split partition p_other at (to_date('2011-09','yyyy-mm'))

into (partition p201109,partition p_other);

---4、删除非分区表

DROP TABLE TBL_STOCK_BALANCE_LOG PURGE;

---5、将分区表重命名为原分区表名

ALTER TABLE TBL_STOCK_BALANCE_LOG_PART1 RENAME TO TBL_STOCK_BALANCE_LOG;

---6、测试

select table_name, partition_name from user_tab_partitions where table_name = 'TBL_STOCK_BALANCE_LOG';

select COUNT(*) from TBL_STOCK_BALANCE_LOG partition(P201109)

文档

把非分区表改为分区表

把非分区表改为分区表个人分类:性能调优--说明:把非分区表改为分区表适用于历史表---1、创建分区表(结构和非分区表TBL_STOCK_BALANCE_LOG相同)CREATETABLETBL_STOCK_BALANCE_LOG_PART1(ACCOUNT_IDVARCHAR2(20BYTE),OCCUR_DATEDATE,BRANCH_IDNUMBER(10),MONEY_TYPEVARCHAR2(10BYTE),MONEY_TYPE_NAMEVARCHAR2(20BYTE),MARKET_
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top