关于创建分区索引_表分区和索引分区
关于创建分区索引由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“表分区和索引分区”。
关于创建分区索引IDX_SB_ZSXX_NSR_SWJG_KPRQ主要解决的问题:
创建该分区索引基于一下2个主要方面
1、由于目前大部分CTAIS2.0上线单位对SB_ZSXX表创建了以NSR_SWJG_DM为分区键的分区表,以加快数据检索速度和降低系统资源消耗。
2、CTAIS2.0系统中相当部分对SB_ZSXX表的查询都具有nsr_swjg_dm和kprq列为条件的特征,典型的如上解入库查询、税款开票查询等。查询语句示例如下(注意红色部分):
SELECT NSRDZDAH, JKPZZL_DM, …………
FROM SB_ZSXX A WHERE :“SYS_B_00” = :“SYS_B_01” AND A.JKPZZL_DM!= :“SYS_B_02” AND A.ZSXM_DM!= :“SYS_B_03” AND A.NSRDZDAH IN(:“SYS_B_04”)AND A.KPRQ >= TO_DATE(:“SYS_B_05”, :“SYS_B_06”)AND A.KPRQ
AND(A.SJRQ IS NULL)AND(A.SJXHRQ IS NULL)AND(A.SJXHR_DM IS NULL)AND(A.JKPZXH IS NOT NULL)AND(A.RKRQ IS NULL)AND(A.RKXHRQ IS NULL)AND(A.RKXHR_DM IS NULL)AND(A.HZJKSH IS NULL)AND A.TZLX_DM IN(:“SYS_B_09”, :“SYS_B_10”)AND KPRQ IS NOT NULL
AND(EXISTS(SELECT :“SYS_B_11” FROM DM_SWJG C WHERE C.SWJG_DM = A.NSR_SWJG_DM AND C.JBDM LIKE :“SYS_B_12”))
ORDER BY JKPZXH ASC, KPRQ ASC 针对以上类型的查询,如果缺少基于nsr_swjg_dm为前缀的本地分区索引,将无法体现出分区表的特性、发挥分区表的优势,具体表现为无法使用分区裁剪功能(partition range single等操作)
创建分区索引的脚本示例和注意事项
创建本地前缀分区索引需要注意一下几个方面:
1、表已经按分区键创建了分区表
2、待创建索引前缀列必须是分区键
3、创建分区索引的partition数目必须大于或等于分区表的partition数目 以河南省创建idx_sb_zsxx_nsr_swjg_kprq索引为例:
1、确认是否存在该分区索引
通过user_indexes和user_idx_columns查询取得。
2、取得sb_zsxx表分区数目
方法一:使用dbms_metadata.get_ddl()包取得表定义脚本
方法二:查询user_part_tables或user_tab_partitions表取得分区数目
3、创建本地前缀分区索引 Create index CTAIS2.IDX_SB_ZSXX_NSR_SWJG_KPRQ on CTAIS2.SB_ZSXX(NSR_SWJG_DM,KPRQ)TABLESPACE CTAIS2_SB_IDX LOCAL(PARTITION “SB_ZSXX_P1” TABLESPACE “CTAIS2_SB_IDX”, PARTITION “SB_ZSXX_P2” TABLESPACE “CTAIS2_SB_IDX”,............PARTITION “SB_ZSXX_P19” TABLESPACE “CTAIS2_SB_IDX”,PARTITION “SB_ZSXX_P_MAX” TABLESPACE “CTAIS2_SB_IDX”)ONLINE NOLOGGING COMPUTE STATISTICS;
注意:一些省已经由运维创建了该分区索引,创建该索引名称为:IDX_SB_ZSXX_P_KPRQ,如杭州等地。